This shows you the differences between two versions of the page.
sd-ca:2015:laboratoare:laborator-03 [2016/02/21 19:11] radu.stochitoiu created |
sd-ca:2015:laboratoare:laborator-03 [2017/03/04 22:20] (current) andrei.vasiliu2211 [Rule of Three] |
||
---|---|---|---|
Line 337: | Line 337: | ||
Reprezintă un concept de ** must do** pentru C++. Astfel: | Reprezintă un concept de ** must do** pentru C++. Astfel: | ||
- | <note important>Dacă programatorul și-a declarat/definit unul dintre ** constructor default**, ** operator de assignment** sau ** copy-constructor**, trebuie să îi declare/definească și pe ceilalți 2</note> | + | <note important>Dacă programatorul și-a declarat/definit unul dintre ** destructor**, ** operator de assignment** sau ** copy-constructor**, trebuie să îi declare/definească și pe ceilalți 2</note> |
Explicație: dacă funcționalitatea vreunuia dintre cei 3 se vrea mai specială decât cea oferită default, atunci mai mult ca sigur se dorește schimbarea funcționalității default și pentru ceilalți 2 rămași. | Explicație: dacă funcționalitatea vreunuia dintre cei 3 se vrea mai specială decât cea oferită default, atunci mai mult ca sigur se dorește schimbarea funcționalității default și pentru ceilalți 2 rămași. | ||
Line 348: | Line 348: | ||
int im; | int im; | ||
public: | public: | ||
- | Complex() | ||
- | { | ||
- | re = 0; | ||
- | im = 0; | ||
- | printf("constructor default\n"); | ||
- | } | ||
- | |||
Complex(const Complex& c) | Complex(const Complex& c) | ||
{ | { | ||
Line 367: | Line 360: | ||
im = c.im; | im = c.im; | ||
printf("assignment operator\n"); | printf("assignment operator\n"); | ||
+ | } | ||
+ | ~Complex() | ||
+ | { | ||
+ | printf("destructor\n"); | ||
} | } | ||
}; | }; |