konstruktory i destruktory cz3 4






Programowanie obiektowe




Operator przypisania





Z konstruktorem kopiującym spokrewniony jest dwuargumentowy operator przypisania

klasa& klasa::operator=(klasa &)

któy służy do przypisania jednemu obiektowi klasy klasa innego obiektu tej klasy.


Jeśli w danej klasie nie zdefiniowano takiego operatora, kompilator stara się wygenerować go sam
metodą "składnik po składniku".
Metoda taka nie jest dobra, gdy w klasie występują wskaźniki lub gdy klasa używa operatora new
do rezerwacji miejsca w pamięci. Wtedy operator przypisania należy zdefiniować samodzielnie.
Operator przypisania musi być funkcją składową klasy.
Powinien on zwracać referencję do obiektu
na rzecz którego został wywołany, by możliwe były przypisania kaskadowe:



zielony=czerwony=niebieski=samochod("Wartburg",127000,12.);






Użycie znaku = przy definiowaniu obiektu powoduje wywołanie konstruktora kopiującego, w pozostałych
sytuacjach wołany jest operator przypisania.






Przykład z operatorem przypisania





W operatorze przypisania można wyróżnić dwa etapy:

najpierw likwidujemy starą wersję obiektu,
następnie na podstawie przypisanego wzorca tworzymy od zera nową wersję.












(6) (c) Marian Mrozek, Kraków - Nowy Sącz, 1997-2001





Wyszukiwarka