我需要在ostringstream的对象中转换ostream的对象。 这是代码:
//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 :: ostream的替换中使用std :: ostringstream,但是运算符&lt;&lt;不起作用。