Mam mały problem ze zrozumieniem tego co się dzieje w czasie wielokrotnego przypisania. Załóżmy, że mamy taki kod:
class A {
private:
int x;
int y;
public:
A(int _x, int _y) : x(_x), y(_y) {}
A operator=(A &obj) {
x = obj.x;
y = obj.y;
return obj;
}
void wypisz() {
cout << x << ' ' << y;
}
};
int main() {
A obj1(5, 6);
A obj2(4, 3);
A obj3(9, 0);
obj1 = (obj2 = obj3);
return 0;
}
Kompilator wyrzuca błąd jakoby nie była znana konwersja z A na A&, ale przecież tak działa referencja:
typ &zmienna = wartosc; // wartosc jest typu typ
Byłbym bardzo wdzięczny za pomoc w rozwianiu moich wątpliwości, spędza mi to sen z powiek