Hej Mirki, mam problem - muszę przeciążyć operator = dla klasy CPoint, z metodami i konstruktorami zdefiniowanymi tak jak w linku. Wydaje mi się, że wszystko powinno działać prawidłowo, niestety gdy używam tego operatora (cpoint1 = cpoint2), to nie zmienia on wartości punktów. Cout, który mam wewnątrz metody przeciążającej operator wyświetla 3 razy tę samą wartość, dla powyższego zapisu cpoint1 = (cpoint2) wyświetla 3 razy wartość *x dla cpoint1. Program zachowuje się jakby nie "wykrywał" punktu, który przekazuję jako argument przeciążającej metody i traktował go jako argument bazowy (ten, dla którego zostaje wykonana operacja =).
Jak można to poprawić? Wie ktoś jak sobie z takim czymś poradzić?
Hej Mirki, mam problem - muszę przeciążyć operator = dla klasy CPoint, z metodami i konstruktorami zdefiniowanymi tak jak w linku.
Wydaje mi się, że wszystko powinno działać prawidłowo, niestety gdy używam tego operatora (cpoint1 = cpoint2), to nie zmienia on wartości punktów. Cout, który mam wewnątrz metody przeciążającej operator wyświetla 3 razy tę samą wartość, dla powyższego zapisu cpoint1 = (cpoint2) wyświetla 3 razy wartość *x dla cpoint1.
Program zachowuje się jakby nie "wykrywał" punktu, który przekazuję jako argument przeciążającej metody i traktował go jako argument bazowy (ten, dla którego zostaje wykonana operacja =).
Jak można to poprawić? Wie ktoś jak sobie z takim czymś poradzić?
http://pastebin.com/NMHEN4tY
Pozdrawiam.
CPoint2D cp1(0.5, 1.5);CPoint2D cp2(2.5, 3.5);
cp1 = cp2;
cout << endl << cp1.get_x() << " " << cp1.get_y() << endl;
wypisuje zgodnie z przewidywaniami 2.5 i 3.5.