Jest tylko jeden aspekt, którego albo nie widzę, albo mój mózg jest zbyt zawalony, aby to zrozumieć, albo przeważam nad nim, tak jak zwykle ...
class CVector {
public:
int x,y;
CVector () {}; //*****This line*****
CVector (int a,int b) : x(a), y(b) {}
CVector operator + (const CVector&);
};
Nie mogę dla życia zrozumieć co mam "CVector () {};"
robi w tym przeciążeniu / klasie operatora. rozumiem "CVector (int a,int b) : x(a), y(b) {}"
tworzy obiekt, który oczekuje 2 int i przypisuje je do x
i y
. Rozumiem to również "CVector operator + (const CVector&);"
jest prototypem funkcji związanej z przeciążeniem.
Ale co robi ta linia? Czy po prostu robi się pusty obiekt z pustym domyślnym?
Odpowiedzi:
1 dla odpowiedzi № 1CVector () {}; jest domyślnym contructor, używany doutwórz obiekt z klasy CVector (bez przekazywania parametrów jak w innym konstruktorze). Nie ma to nic wspólnego z przeciążaniem operatora.