Przeladowanie operatora +

0

Witam mam problem z przeladowaniem operatora + przyjmujacego 2 argumenty obiekt klasy i string i na odwrot.
deklaracje


    friend
    osoba operator+(const string& n,osoba& r);
    friend
    osoba operator+(osoba& r,const string& n);
 

definicje poza klasa osoba
Wiem ze nie musialem uzywac metod dostepowych jesli funkcja ma przydomek friend ale po prostu dla cwiczenia sobie tak zrobilem :P

 

    osoba& operator+(osoba& r,string& n){

        r.surname() = n;
        return r;
    }
    osoba& operator+(string& n,osoba& r){

        r.surname() = n;
        return r;
    }
Kawalek kodu dla ktorego chcialem zeby dzialal:

osoba tab[4];

tab[1] = tab[1]+ "Kowalska";
		tab[3] = "Bocian" + tab[3];

		for (int i = 0; i < 4; ++i)
			cout << tab[i];
 

Myslalem by wgl zmienic cialo na generowanie nowego obiektu

0
balti napisał(a):

Witam mam problem

A coś więcej powiesz?

0

Operator+ przyjmuje tylko jeden argument :)

1

operator powinien zwracać nowy obiekt, a ty modyfikujesz jeden z parametrów i zwracasz nań referencję.

1 użytkowników online, w tym zalogowanych: 0, gości: 1