Gå til innhold

LØST: Endre private variabel med friend


Anbefalte innlegg

Hei!

For å lære meg bruk av friend har jeg laget en enkelt program som oppretter et objekt av klassen Bike, og prøver å endre de private medlemsvariablene, men selv om det kompilerer og kjører blir ikke variablene endret. Hvorfor?

 

#include <iostream>
#include <string>
using namespace std;

class Bike {
private:
int antGir;
string farge;

public:
Bike(int gir, string f):antGir(gir),farge(f){};
int getAntGir() {return antGir;};
string getFarge() {return farge;};
friend void malGul(Bike b);
};
void malGul(Bike b)  {
b.farge = "gul";
b.antGir++;
}

void main()
{
Bike b1(21, "svart");
cout << "b1.farge: " << b1.getFarge() << endl;
cout << "b1.antGir: " << b1.getAntGir() << endl;
cout << endl << "SYKKELREPERATØREN!" << endl;
malGul(b1);
cout << "b1.farge: " << b1.getFarge() << endl;
cout << "b1.antGir: " << b1.getAntGir() << endl;

}

 

Takk for svar! :)

 

EDIT: Ai ai, pinlig sak.. Ser jeg har glemt call-by-reference..

Kanskje en moderator vil slette/arkivere?

Endret av toss
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...