Может кто-нибудь объяснить мне, почему в функции перегрузки после создания temp, temp.x становится 2, а temp.y становится 1? Конструктор по умолчанию не имеет аргументов, поэтому не должно быть temp.x и temp.y равными 0 или иметь странное число?
Спасибо!
// overloading operators example
#include <iostream>
using namespace std;
class CVector {
public:
int x,y;
CVector () {};
CVector (int a,int b) : x(a), y(b) {}
CVector operator + (const CVector&);
};
CVector CVector::operator+ (const CVector& param) {
CVector temp;
cout << " x: -> " << temp.x << " <-";
cout << " y: -> " << temp.y << " <-\n";
temp.x = x + param.x;
temp.y = y + param.y;
return temp;
}
int main () {
CVector foo (3,1);
CVector bar (1,2);
CVector result;
result = foo + bar;
cout << result.x << ',' << result.y << '\n';
return 0;
}
Result: x:-> 2 <- y: -> 1 <-
4,3