C++ - muss Freund-Funktionen werden definiert in der header Datei?

Ich will überladen Sie den operator << in einer meiner Klassen.
Die Signatur geht so:

friend std::ostream& operator<<(std::ostream& os, const Annuaire& obj)

Wenn ich versuche es zu definieren im .cpp-Datei, die es sagt, dass der operator<< genau 1 argument, aber wenn ich es definieren .h, es kompiliert/funktioniert einwandfrei.

Dies ist, wie ich es definieren .cpp-Datei :

std::ostream& Annuaire::operator<<(std::ostream& os, const Annuaire& obj){ //... }

Muss es etwas zu tun mit friend-Funktionen müssen definiert werden in header-Dateien?

Sie haben, um ostream und istream Recht...
ja, Ihr Freund ist istream und der in der cpp wird ostream, wenn das beabsichtigt ist, benötigen Sie 2 friend-Deklarationen und 2 Definitionen, wenn nicht, beheben eine oder das andere, je nachdem, ob Sie wollen oder raus-stream
Danke, das war ein copy-paste Fehler sowieso.

InformationsquelleAutor Pacane | 2011-12-04

Schreibe einen Kommentar