C++/Konstruktor i destruktor: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
→Konstruktor: kompilator generuje pusty konstruktor |
dodałem o instrukcjach inicjujących |
||
Linia 68:
otrzymawszy w ten sposób kalendarz na styczeń.
Najczęstszą funkcją konstruktora jest inicjalizacja obiektu oraz alokacja pamięci dla dodatkowych zmiennych (w tym celu lepiej jest użyć instrukcji inicjujących, które poznasz już za chwilę).▼
=== Instrukcje inicjujące ===
''' Instrukcje inicjujące ''' to instrukcje konstruktora spełniające specyficzne zadanie. Mianowice mogą one zostać wywołane przez kompilator zaraz po utworzeniu klasy. Służą do inicjowania pól klasy, w tym stałych i referencji.
Jeżeli chcemy zaimplementować '''instrukcje inicjujące''' musimy po deklaracji konstruktora umieścić dwukropek i podać w nich nazwy pól, które chcemy zainicjować, a potem wartości ich ujęte w nawiasy okrągłe. Mogą one wyglądać np. tak:
<source lang="cpp">
Rok()
, liczbaDni(7)
/*
zamiast średników stosuje się przecinki
przy ostatniej instrukcji przecinka nie stosuje się
*/
{}
</source>
▲Najczęstszą funkcją konstruktora jest inicjalizacja obiektu oraz alokacja pamięci dla dodatkowych zmiennych.
=== Konstruktor kopiujący ===
Linia 115 ⟶ 110:
};
</source>
{{Porada|1=Jeżeli dokonujemy w konstruktorze (np. w instrukcjach inicjujących) alokacji pamięci, np:
<source lang="cpp">
class Rok
Linia 123 ⟶ 118:
public:
Rok()
: miesiace(new Miesiac[12]) {}
▲ miesiace=new Miesiac[12];
};
</source>
Linia 136 ⟶ 129:
Miesiac *miesiace;
public:
Rok() : miesiace(new Miesiac[12]) {}
Rok(const Rok &rok)
{
|