Question

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; cout<< x;

I recieve error message: error: undefined reference to `operator<<(std::basic_ostream >&, test const&)

whats the problem?

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top