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.
studenten
Länge sedan jag skrev C++ (åtminstone tio år), men ser skumt ut med space mellan "operator" och "<<"
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.
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.
Copyright © 1999–2024 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.