Overloading ostream
I have my class for example TEST in TEST.h I have
friend ostream& operator<< (ostream& out, const test& outstr);
in TEST.cc
ostream& operator <<(ostream& out, test& strout) { out<< "TEST"; return out; }
in main test x; cou开发者_运维技巧t<< x;
I recieve error message: error: undefined reference to `operator<<(std::basic_ostream >&, test const&)
whats the problem?
You have const in the declaration:
friend ostream& operator<< (ostream& out, const test& outstr);
and no const in the implementation:
ostream& operator <<(ostream& out, MISSING CONST test& strout)
Adding const to the implementation should solve your issue.
精彩评论