konstruktor kopiujący a operator przypisania

konstruktor kopiujący a operator przypisania
  • Rejestracja: dni
  • Ostatnio: dni
0

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?

Shalom
  • 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...

twonek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2500
0

Jest jeden przypadek, który może trochę zmylić swoją składnią, to jest inicjalizacja

Kopiuj
X a = innyObiektKlasyX;

tu jest wywołany konstruktor kopiujący, a nie operator przypisania mimo występowania =.

satirev
  • 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).

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.