88 Godzina 6
Inicjalizacja łączy w sobie definicję zmiennej z operacją przypisania wartości. Nie ma żadnych przeszkód, aby wartość tę później zmienić. Inicjalizacja zmiennej daje gwarancję, że nie będzie ona miała wartości nieustalonej.
Jak można inicjalizować zmienne wewnętrzne klasy? Otóż w klasach występują specjalne funkcje wewnętrzne nazywane konstruktorami. Konstruktor może pobierać parametry, nie może natomiast zwracać wartości (zawsze void). Konstruktor klasy musi nazywać się tak samo jak klasa.
Jeśli deklarujesz konstruktor to powinieneś zadeklarować również destruktor. Tak
jak konstruktor tworzy i inicjalizuje obiekt, tak destruktor czyści miejsce w pamięci (np. zwalnia zarezerwowaną pamięć). Nazwa destruktora musi być taka jak nazwa klasy poprzedzona znakiem tyldy ( ~ ). Destruktor nie pobiera żadnych argumentów ani nie zwraca wartości. Przykładowa deklaracja destruktora klasy Kot wygląda tak:
-Kot()
NOWY TERMIN
Konstruktor bez parametrów nazywany jest konstruktorem domyślnym.
Jeśli napiszesz:
Kot Frisky(5);
to wymuszasz wykorzystanie konstruktora klasy Kot pobierającego jeden parametr
(w tym przypadku o wartości 5). Natomiast w przypadku takim:
Kot Frisky;
kompilator pozwala na pominięcie nawiasów. Zostanie wywołany domyślny konstruktor, nie pobierający żadnych parametrów.
Jeśli nie zadeklarujesz żadnego konstruktora, to kompilator automatycznie stworzy konstruktor domyślny (pamiętaj, że konstruktor domyślny nie pobiera żadnych parametrów).
Domyślny konstruktor, stworzony przez kompilator, nie robi nic. To tak, jakbyś stworzył konstruktor, nie pobierający parametrów i nie posiadający treści:
Kot: :Kot()
{
}
Inicjalizacja łączy w sobie definicję zmiennej z operacją przypisania wartości. Nie ma żadnych przeszkód, aby wartość tę później zmienić. Inicjalizacja zmiennej daje gwarancję, że nie będzie ona miała wartości nieustalonej.
Jak można inicjalizować zmienne wewnętrzne klasy? Otóż w klasach występują specjalne funkcje wewnętrzne nazywane konstruktorami. Konstruktor może pobierać parametry, nie może natomiast zwracać wartości (zawsze void). Konstruktor klasy musi nazywać się tak samo jak klasa.
Jeśli deklarujesz konstruktor to powinieneś zadeklarować również destruktor. Tak jak konstruktor tworzy i inicjalizuje obiekt, tak destruktor czyści miejsce w pamięci (np. zwalnia zarezerwowaną pamięć). Nazwa destruktora musi być taka jak nazwa klasy poprzedzona znakiem tyldy (~). Destruktor nie pobiera żadnych argumentów ani nie zwraca wartości. Przykładowa deklaracja destruktora klasy Kot wygląda tak:
~Kot()
NOWY TERMIN
Konstruktor bez parametrów nazywany jest konstruktorem domyślnym.
Jeśli napiszesz:
Kot Frisky(5) ;
to wymuszasz wykorzystanie konstruktora klasy Kot pobierającego jeden parametr (w tym przypadku o wartości 5). Natomiast w przypadku takim:
Kot Frisky;
kompilator pozwala na pominięcie nawiasów. Zostanie wywołany domyślny konstruktor, nie pobierający żadnych parametrów.
Jeśli nie zadeklarujesz żadnego konstruktora, to kompilator automatycznie stworzy konstruktor domyślny (pamiętaj, że konstruktor domyślny nie pobiera żadnych parametrów).
Domyślny konstruktor, stworzony przez kompilator, nie robi nic. To tak, jakbyś stworzył konstruktor, nie pobierający parametrów i nie posiadający treści:
Kot::Kot()
)