Poznaj C++ w$ godziny0102

Poznaj C++ w$ godziny0102



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()

Konstruktory domyślne

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.

Konstruktory tworzone przez kompilator

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()

Konstruktory domyślne

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.

Konstruktory tworzone przez kompilator

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()

)


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0054 Instrukcje i wyrażenia 39Wyrażenia m Wszystko co zwraca w C++ jakąś wartoś
Poznaj C++ w$ godziny0184 Zaawansowane referencje i wskaźniki 173 Ponieważ wiemy, że obiekt nie będz
Klasyczne definicje strategii K. Oblój twierdzi, że nie ma żadnej „najlepszej”, „prawdziwej”,
Poznaj C++ w$ godziny0043 Zmienne i stałe 27Definiowanie zmiennych Zmienne tworzy się i definiuje si
Poznaj C++ w$ godziny0047 Zmienne i stałe 31Kiedy używać short a kiedy long Jednym z problemów progr
Poznaj C++ w$ godziny0055 40 Godzina 4EFEKT DZIAŁANIA; a: Ob: 0x: Oy: 35 a: 9 b: 7 x: 16 y: 16 W lin
Poznaj C++ w$ godziny0076 62Godzina 5 A oto kilka poprawnych definicji: long Pole(long d, long s){ r
Poznaj C++ w$ godziny0083 Funkcje 69Parametry domyślne Do każdego zadeklarowanego w prototypie i def
Poznaj C++ w$ godziny0091 76 Godzina 5 Definicja funkcji musi być zgodna, co do wartości zwracanej,
Poznaj C++ w$ godziny0104 90Godzina 6 33:    > 34: 35:    // defini
Poznaj C++ w$ godziny0105 Proste klasy 91 Linia 58 zawiera definicję obiektu Frisky (będącego klasy
Poznaj C++ w$ godziny0110 Więcej o klasach 97 Innym sposobem uzyskania funkcji typu inline jest umie
Poznaj C++ w$ godziny0132 120 Godzina 8 120 Godzina 8 ANALIZA: W linii 8, w instrukcji for wykonywan
Poznaj C++ w$ godziny0139 128 Godzina 9 Stop. Przeczytaj tę definicję jeszcze raz. Wskaźnik jest zmi
Poznaj C++ w$ godziny0186 175Zaawansowane referencje i wskaźniki Wskaźnik plnt jest deklarowany i in
page0059 DEFINICYA ARYSTOTELESA. 53 skiemi. Otóż filozofia może się chlubić, że łączy w sobie tę kor

więcej podobnych podstron