Salve a tutti!
E' da qualche settimana che ho cominciato a mettere le mani sul C++, avendo conoscenze solo di C.
Quindi alcune cose fatico ancora a comprenderle.
Vi posto un esercizietto idiota, ma che mi dà da riflettere...
Bene, primo dubbio.codice:class C { private: int x; public: C(int n=0) {x=n;} C F(C obj) {C r; r.x=obj.x+x; return r; } .... }; int main() { C x, y(1), z(2); const C v(2); z=x.F(y); ... }
L'unico costruttore dichiarato nella classe è ad un parametro (con argomento di default), quindi non dovrei più avere a disposizione il costruttore standard. Giusto?
Non capisco perché la dichiarazione C x nel main sia corretta.
Non dovrei poterla fare solo se ho a disposizione un costruttore di default, o comunque standard?
Probabilmente sto facendo confusione...
Ultima cosa: l'istruzione nel main x.F(y) cosa fa esattamente?
Applica il metodo F sull'oggetto di invocazione x. Non capisco però che ruolo svolga poi x nell'esecuzione del metodo.
Qualcuno sa spiegarmi, in parole povere, cosa accade con quell'istruzione?
Grazie