Мне нужно преобразовать объект ostream в объект ostringstream.
Это код:
//gerarchia_view.h
class bagaglio_view{
private:
std::ostream& os;
std::string data;
public:
bagaglio_view();
std::string print_bagaglio(const bagaglio &b) const;
};
//gerarchia_view.cpp
bagaglio_view::bagaglio_view():data(" "),os(std::cout){
}
std::string bagaglio_view::print_bagaglio(const bagaglio& b) const{
os<<b; // operator << is overloaded
std::ostringstream* oss=static_cast<std::ostringstream*>(&os);
return oss->str(); // down-cast, segm fault
}
Мне нужна функция
std::string bagaglio_view::print_bagaglio(const bagaglio& b) const;
вернуть строку, которая находится в std :: ostream os.
Как я могу решить это? Я попытался dynamic_cast и использовать std :: ostringstream в замене std :: ostream, но оператор<< не работает
Задача ещё не решена.
Других решений пока нет …