我试图重载运算符<<在功能上。我试图解决这个问题,我坚持了几个小时。我已经找到了很多关于如何在ostream上执行此操作的示例,但没有一个针对我的具体问题。
#include <iostream>
class foo
{
public:
foo& operator<< (foo& (*pf)(foo&))
{
return pf(*this);
}
foo& do_something_more(foo& os)
{
return os;
}
};
ostream& do_something(ostream& os)
{
os << "1." << "\n" << "2.";
return os;
}
int main()
{
foo a;
std::cout << do_something; // this works
a << do_something_more; // this do not
system("pause");
return 0;
}
这只是我试图解决这个问题的一个例子。我收到错误&#39; do_something_more&#39;:此声明中的
感谢您的帮助!
答案 0 :(得分:-4)
如错误所示,您尚未声明任何名为do_something_more的对象。这是你的foo类中的一个方法。试试cout<<a.do_something_more();
即便如此,我也不确定它是否会奏效。