Zolo Skrevet 18. juli 2009 Del Skrevet 18. juli 2009 har en klasse som skal mota data via operator << dette fungerer om jeg gjør som følgende: Myclass test; test << somedata; Jeg får problemer om jeg prøver på følgende test << somedata << moreData; Må jeg definere operatoren annerledes for at det skal fungere å sende inn mer i en lang sekvens? Min operator er som følgende: void operator << (const float f); Ser det som en fordel å kunne sende inn en lang sekvens av data klassen kan motta. Dette siden det skal benyttes til å skrive til fra fil. Lenke til kommentar
Giddion Skrevet 18. juli 2009 Del Skrevet 18. juli 2009 <snip>Må jeg definere operatoren annerledes for at det skal fungere å sende inn mer i en lang sekvens? Jupps Min operator er som følgende: void operator << (const float f); Den burde være Myclass& operator << (const float f); Mulig det er litt feil (litt trøtt)... men jeg tror den skal stemme. Lykke til Lenke til kommentar
Zolo Skrevet 19. juli 2009 Forfatter Del Skrevet 19. juli 2009 Det fungerer bra, og logisk var det jo også.. Lenke til kommentar
Dead_Rabbit Skrevet 7. august 2009 Del Skrevet 7. august 2009 Når man skal overlaste operatorer er det greit å tenke på hvordan man vil bruke de. F.eks. så er det lett å tenke at hvis man har en klasse, A og vil at man skal kunne skrive ut instanser av A vha. cout og operator<< så overlaster man operator<< i klassen. Dette blir imidlertid feil fordi man da blir nødt til å skrive: A a; a << cout; I dette tilfelle må man isteden definere den utenfor klassen: ostream& operator<<(ostream& os, const A& a) { } Lenke til kommentar
Zolo Skrevet 7. august 2009 Forfatter Del Skrevet 7. august 2009 (endret) Når man skal overlaste operatorer er det greit å tenke på hvordan man vil bruke de. F.eks. så er det lett å tenke at hvis man har en klasse, A og vil at man skal kunne skrive ut instanser av A vha. cout og operator<< så overlaster man operator<< i klassen. Dette blir imidlertid feil fordi man da blir nødt til å skrive: A a; a << cout; I dette tilfelle må man isteden definere den utenfor klassen: ostream& operator<<(ostream& os, const A& a) { } Men i mitt tilfelle skal den defineres i klassen fordi jeg ønsker å skrive a << cout; Det har heller ikke noe med cout å gjøre. Endret 7. august 2009 av Zolo Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå