/* feedback bij reeks 8 * PROBLEEM : fakeInt * INHOUD FEEDBACK : uitleg over operator<< */ OPM 1 Gevraagd: Bij overloaden van de uitschrijfoperator voor FakeInt heb ik volgende code, met bijhorende foutmelding: friend ostream &operator<<(ostream &stream) const{ stream << value; return stream; } fakeint.h:133: error: ISO C++ forbids declaration of `ostream' with no type Oplossing: De operator<< is een "binaire" operator (oorspronkelijk een bitshift-operator), en heeft dus altijd twee parameters nodig. Als je die operator wil gebruiken om uit te schrijven (cout << ...) dan moet het eerste argument van het type ostream& zijn en het tweede argument het datatype in kwestie (hier FakeInt). Omdat het eerste argument van het type ostream& is kan dit geen lidfunctie van FakeInt zijn (lidfuncties hebben immers als eerste (verborgen) parameter altijd de this-pointer). Er zijn twee mogelijkheden: OFWEL schrijf je de code IN de klassedefinitie. Eigenlijk blijft die functie een non-memberfunctie - maar zo geef je wel aan dat ze 'bij de klasse hoort'. Dan moet de functie echter ook als 'friend' gemarkeerd worden, wil-ie aan eventuele dataleden van FakeInt kunnen. MINPUNT: je gebruikt hier de 'friends' waar het eigenlijk vermeden kan worden. In code heb je dan: friend std::ostream& operator<<(std::ostream& os,const FakeInt & i){ os<