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?
0
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...
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 =
.
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).