![]() |
[C++] Overloaden van de << operator.
Gecrosspost, maar misschien krijg ik hier wat meer reacties. :p
Ik heb een class Dierentuin met daarin een map waarin werknevers opgeslagen worden. Er is een functie Dierentuin::overzichtWerknemers() die over de map itereert en alle data op het scherm tovert. Er is ook een Main file van waaruit menuopties gekozen kunnen worden. Nu moet ik de Main file zo aanpassen dat cout << *artis werkt. De code is als volgt: Code:
//Main.cc Code:
//Dierentuin.h Code:
//Dierentuin.cc Ik krijg de volgende (samengevatte) compilererror: Dierentuin.cc:336: error: no match for 'operator<<' in 'out << ((Dierentuin*)d)->Dierentuin::overzichtWerknemers(); Als ik regel 336 vervang door: out << Dierentuin::overzichtWerknemers(); zegt ie: "cannot call member function 'void Dierentuin::overzichtWerknemers()' without object". M.A.W.: Ik zit dus een beetje vast. Enig idee hoe ik dit kan wijzigen zodat die wel netjes de output laat zien met de huidige structuur? |
Ben niet zo erg actief met C++ hoor, maar is het misschien zo dat er geen spatie tussen "operator" en "<<" moet? Is een grote gok.
Edit: http://www.cs.caltech.edu/courses/cs...e/cpp-ops.html Volgens mij wel een spatie ja. |
Kan het verder ook zo zijn dat je bij de operator functie niet moet hebben:
Dierentuin &d Maar gewoon: Dierentuin d Want als je doet: Dierentuin *artis = new Dierentuin("Artis"); Levert *artis dan niet gewoon een Dierentuin object op? |
Alle tijden zijn GMT +1. Het is nu 16:50. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.