C++/Konstruktor i destruktor: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Gang65 (dyskusja | edycje)
Linia 18:
Mamy na przykład klasę ''Miesiac''. Chcielibyśmy, aby każdy obiekt tej klasy tuż po utworzeniu wygenerował tablicę z nazwami dni tygodnia w zależności od miesiąca i roku. A może dało by się to zrobić ''w trakcie'' tworzenia klasy?<br>
Przyjrzyj się poniższej klasie, oraz funkcji konstruktora:
<source lang="cpp>
class Miesiac
{
Linia 31 ⟶ 32:
/* instrukcje tworzące */
}
</source>
Konstruktor może też przyjmować argumenty. Jak?<br>To zależy od sposobu w jaki tworzymy obiekt:
* jako obiekt
Linia 38 ⟶ 40:
 
Teraz powyższa klasa miesiąca może być stworzona z uwzględnieniem numeru miesiąca i roku:
<source lang="cpp">
class Miesiac
{
Linia 51 ⟶ 54:
/* instrukcje tworzące */
}
</source>
Aby utworzyć nowy obiekt tej klasy trzeba będzie napisać:
Miesiac styczen2000(1,2000);
Linia 58 ⟶ 62:
 
W przypadku dziedziczenia zawsze najpierw jest wykonywany konstruktor nadklasy. Jeżeli nie podamy jawnie, który konstruktor nadklasy ma się wykonać, zostanie wykonany konstruktor bezparametrowy (jeżeli taki nie istnieje kompilator zwróci informacje o błędzie). Możemy jawnie wywołać inny konstruktor np. w taki sposób:
<source lang="cpp>
class Miesiac
{
Linia 76 ⟶ 81:
{}
};
</source>
 
Najczęstszą funkcją konstruktora jest inicjalizacja obiektu, oraz alokacja pamięci (np. poprzez stworzenie potrzebnych obiektów).