【发布时间】:2010-04-22 09:27:48
【问题描述】:
我有一个派生自 ostream 的类:
class my_ostream: public std::ostream
{
// ...
}
我想制作一个专门用于此类的操纵器(例如do_something),如下所示:
my_ostream s;
s << "some text" << do_something << "some more text";
我做了以下事情:
std::ostream &do_something(std::ostream &os)
{
my_ostream *s = dynamic_cast<my_ostream*>(&os);
if (s != NULL)
{
// do something
}
return os;
}
这可行,但相当难看。我尝试了以下方法:
my_ostream &do_something(my_ostream &s)
{
// do something
return s;
}
这不起作用。我还尝试了另一种方法:
class my_ostream: public std::ostream
{
// ...
my_ostream &operator<<(const do_something & x)
{
// do something
return *this;
}
}
这仍然不起作用。
【问题讨论】:
标签: c++ iostream manipulators