C++ överlagring << operator : Löste sig...

Permalänk

C++ överlagring << operator : Löste sig...

C++ fråga:

Hej i min klass skiver jag denna rad för att skriva ut objekt av klassen:
friend ostream & operator <<(ostream &out, const MyClass& m);

(eftersom utmatningsoperatorn är ett ostream-objekt om jag fattat.. )

får "Function definition for 'operator <<' not found."

Hur löses detta?
// tacksam för svar

Jo, skrev detta... Ja, alltså implementerade ovanstående med:

ostream &operator << (ostream &out, const MyClass& m)
{
out << m.nr << " " << m.colour << endl;
return out;

}

Fungerade.

Fann svar...
Visa signatur

studenten

Permalänk
Medlem

Länge sedan jag skrev C++ (åtminstone tio år), men ser skumt ut med space mellan "operator" och "<<"

Permalänk
Medlem

Vad du har där är en deklaration av operatorn, men du måste även definiera funktionen någonstans också. Se learncpp för hur deklaration/definition av funktioner fungerar, och specifikt hur överlagring av << oftast implementeras.

Skrivet av hivemind:

Länge sedan jag skrev C++ (åtminstone tio år), men ser skumt ut med space mellan "operator" och "<<"

Det är ok, kompilatorn bryr sig inte om whitespace där.