Konstruktor (programowanie obiektowe): Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
// Konstruktor kopiujący
Sprostowanie na temat statyczności konstruktora
Linia 152:
== Właściwości i ciekawostki ==
* W większości języków konstruktor nie może być [[metoda wirtualna|wirtualny]] (w efekcie czego nie może być metodą czysto wirtualną).
* Konstruktor nie może być [[metoda statyczna|statyczny]] (wyjątek: język [[C_Sharp|C#]]). Oznacza to jedynie to, że nie umieszcza się przed nim słowa kluczowego "static", bo w praktyce konstruktor zachowuje się jak zwykła metoda statyczna, której wywołanie poprzedza zwykle operator "new".
* W klasie, gdzie zadeklarowany jest konstruktor kopiujący, powinien być zadeklarowany dowolny inny konstruktor (domyślny lub inny), ponieważ nie byłoby możliwe stworzenie obiektu danej klasy. Aby stworzyć obiekt korzystając z konstruktora kopiującego, należałoby posiadać inny egzemplarz obiektu danej klasy, który nie może być utworzony, ponieważ jego stworzenie również wymagałoby egzemplarza danej klasy itd.
* W klasie, gdzie wymagane jest istnienie: konstruktora kopiującego, [[destruktor]]a lub operatora przypisania, wymagane jest najczęściej istnienie wszystkich trzech.