000
12.11.2007, 17:03 Uhr
~funkStille
Gast
|
Hallo miteinander!
Weiß einer von euch, warum das letzte cout oben genannte Compilerfehlermeldung erzeugt, das vorletzte hingegen nicht?
C++: |
#include <iostream>
using namespace std;
class Foo { };
class Bar { public: Foo get() { return foo; }
private: Foo foo; };
ostream& operator<<(ostream& os, Foo& f) { os << "Bar!"; return os; };
int main(int argc, char** argv) { Foo foo; Bar bar;
cout << foo << endl; cout << bar.get() << endl; }
|
Getestet habe ich das Beispiel mit g++ in den Versionen 4.1.2 und 3.4.6. Die genaue Fehlermeldung (g++ 4.1.2) ist:
Code: |
test.cc: In function 'int main(int, char**)': test.cc:30: error: no match for 'operator<<' in 'std::cout << bar. Bar::get()'
|
Ich bin gespannt!
Viele Grüße, funkStille |