Jakie jest różnica pomiędzy operatorem przypisania a konstuktorem kopiującym. Jak działają i jaka jest różnica w składni przede wszystkim?
konstruktor kopiujący a operator przypisania
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
0
Konstruktor działa w chwili tworzenia obiektu. Operator przypisania działa jeśli masz już obiekt i przypisujesz mu wartość innego obiektu. Różnica w składni taka że jeden to operator= a drugi to konstruktor, to chyba dość jasne...
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2500
0
Jest jeden przypadek, który może trochę zmylić swoją składnią, to jest inicjalizacja
X a = innyObiektKlasyX;
tu jest wywołany konstruktor kopiujący, a nie operator przypisania mimo występowania =.
- Rejestracja: dni
- Ostatnio: dni
0
Do C++11 było tak, jak pisze @Shalom. C++11 wprowadził pojęcie semantyki przenoszenia i tym samym dodał move constructor i move assignment. W związku z tym różnica między konstruktorem kopiującym, a operatorem przypisania zależy od tego o jakie przypisanie nam chodzi (value, czy move semantics).