我試圖超載運算符< < on函數。我堅持了幾個堅實的時間試圖弄清楚這一點。我發現了很多示例如何在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;
}
這只是我試圖解決這個問題的一個例子。我得到錯誤'do_something_more':在這一個中的未聲明標識符。
感謝您的幫助!
'do_something_more()'是'foo'的成員函數,您需要一個實例來調用它。 –
或者使其成爲靜態的並使用'a << foo :: do_something_more;'...或者只是非成員。 – LogicStuff
沒有什麼東西真的有道理。 –