[color=#000000:post_uid0]What's wrong with this code?
[b:post_uid0]ZStreamable.hpp[/b:post_uid0]
[code:1:post_uid0]namespace zilla {
class ZStreamable;
}
std::ostream& operator<<(std::ostream& out, const zilla::ZStreamable& obj); // line 13
namespace zilla {
class ZStreamable {
public:
ZStreamable ();
virtual ~ZStreamable ();
virtual void render (std::ostream &out) const = 0;
friend std::ostream& operator<<(std::ostream& out, const zilla::ZStreamable& obj); // line 23
};
}[/code:1:post_uid0]
[b:post_uid0]PageFooter.hpp[/b:post_uid0]
[code:1:post_uid0]namespace zilla {
class PageFooter : public ZStreamable {
public:
virtual void render (std::ostream &out) const;
};
}[/code:1:post_uid0]
[b:post_uid0]index.cgi.cpp[/b:post_uid0]
[code:1:post_uid0]// other code, main, etc etc
cout << PageFooter (); // line 72
// mode code[/code:1:post_uid0]
[b:post_uid0]make[/b:post_uid0]
[code:1:post_uid0]g++ -g -Wall -pedantic -ansi -lcgicc index.cgi.cpp HTTPHTMLCharsetHeader.o XHTMLDoctype.o PageFooter.o ZStreamable.o -o index.cgi
index.cgi.cpp: In function `int main(int, char**)':
index.cgi.cpp:72: ambiguous overload for `std::ostream& << zilla::PageFooter'
operator
ZStreamable.hpp:13: candidates are: std::ostream& operator<<(std::ostream&,
const zilla::ZStreamable&)
ZStreamable.hpp:23: std::ostream&
zilla::operator<<(std::ostream&, const zilla::ZStreamable&)
ZStreamable.hpp:23: std::ostream&
zilla::operator<<(std::ostream&, const zilla::ZStreamable&)[/code:1:post_uid0][/color:post_uid0]
|