Operatorenüberladung
-
Du kannst func nicht finden, indem Du nach << suchst?
-
volkard schrieb:
Du kannst func nicht finden, indem Du nach << suchst?
Ups, eine Zeile habe ich nicht geändert, vorm posten. So soll das Beispiel aussehen:
#include <iostream> class Foo { friend std::ostream& operator<<(std::ostream &out, const Foo&){ return out; } }; class Bar { friend std::ostream& operator<<(std::ostream &out, const Bar&); }; class FooBar { friend std::ostream& operator<<(std::ostream &out, const FooBar&); }; std::ostream& operator<<(std::ostream &out, const Bar&){ return out; } std::ostream& operator<<(std::ostream &out, const FooBar&){ return out; } int main() { std::ostream& (*bar_ptr)(std::ostream &out, const Bar&) = operator<<; // Geht std::ostream& (*foobar_ptr)(std::ostream &out, const FooBar&) = operator<<; // Dito. Ist schließlich das gleiche, ich wollte bloß die // Überladungsauflösung demonstrieren std::ostream& (*foo_ptr)(std::ostream &out, const Foo&) = operator<<; // Kann Funktion nicht finden }