Zwracanie referencji do swojego obiektu.

0

Definicja metody translate

Point<2> & Point<2>::translate(float xx, float yy)
{
	Point<2> p(x, y);
	p.x += p.x + xx;
	p.y += p.y + yy;
	return p;
}

main:

Point<2> point1(1,1);
point1.translate(2,2);
cout << point1.x << " " << point1.y << endl; // wyswietla 1,1

Dlaczego nie zwiększa point1.x i point1.y?

1

Zwracasz referencję do lokalnego obiektu. Użycie jej to UB, nie rób tego. Powinieneś zwrócić kopię, lub modyfikować obiekt, na którym pracujesz.

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