169
39: FunkcjaDruga(SFrisky);
40: return 0;
42:
43: // FunkcjaPierwsza, przekazanie przez wartość
44: ZwyklyKot FunkcjaPierwsza(ZwyklyKot Kot)
46: cout « "FunkcjaPierwsza koniec...\n";
47: return Kot;
49:
50: // FunkcjaDruga, przekazanie przez wskaźnik
51: ZwyklyKot* FunkcjaDruga (ZwyklyKot *Kot)
53: cout « "FunkcjaDruga koniec...\n";
54: return Kot;
1: Tworzenie kota...
2: Konstruktor zwykłego kota...
3: Wywołanie FunkcjaPierwsza...
4: Konstruktor kopiujący zwykłego kota...
5: FunkcjaPierwsza koniec...
6: Konstruktor kopiujący zwykłego kota...
7: Destruktor zwykłego kota...
8: Destruktor zwykłego kota...
9: Wywołanie FunkcjaDruga...
10: FunkcjaDruga koniec...
11: Destruktor zwykłego kota...
W liniach 6-12 deklarowana jest bardzo uproszczona klasa ZwyklyKot.
ANALIZA:
Konstruktor, konstruktor kopiujący i destruktor wypisują stosowny komunikat, dzięki czemu wiadomo, kiedy są wywoływane.
W linii 34 main() wypisuje informację; widać to w linii 1 na wydruku. W linii 35 tworzony jest obiekt klasy ZwyklyKot. Zostaje wywołany konstruktor klasy, co jest widoczne w linii 2 wydruku.
W linii 36 main() informuje, że będzie wywoływać funkcję FunkcjaPierwsza (). Informacja jest widoczna w 3 linii wydruku. Ponieważ funkcja FunkcjaPierwsza () pobiera obiekt klasy ZwyklyKot przez wartość, dlatego na stosie musi zostać stworzona kopia obiektu. Zostaje wywołany konstruktor kopiujący, o czym informuje nas 4 linia wydruku.
169
39: FunkcjaDruga(SFrisky);
40: return 0;
42:
43: // FunkcjaPierwsza, przekazanie przez wartość
44: ZwyklyKot FunkcjaPierwsza(ZwyklyKot Kot)
46: cout « "FunkcjaPierwsza koniec...\n";
47: return Kot;
49:
50: // FunkcjaDruga, przekazanie przez wskaźnik
51: ZwyklyKot* FunkcjaDruga (ZwyklyKot *Kot)
53: cout « "FunkcjaDruga koniec...\n";
54: return Kot;
1: Tworzenie kota...
2: Konstruktor zwykłego kota...
3: Wywołanie FunkcjaPierwsza...
4: Konstruktor kopiujący zwykłego kota...
5: FunkcjaPierwsza koniec...
6: Konstruktor kopiujący zwykłego kota...
7: Destruktor zwykłego kota...
8: Destruktor zwykłego kota...
9: Wywołanie FunkcjaDruga...
10: FunkcjaDruga koniec...
11: Destruktor zwykłego kota...
ANALIZA:
W liniach 6-12 deklarowana jest bardzo uproszczona klasa ZwyklyKot. Konstruktor, konstruktor kopiujący i destruktor wypisują stosowny komunikat, dzięki czemu wiadomo, kiedy są wywoływane.
W linii 34 main() wypisuje informację; widać to w linii 1 na wydruku. W linii 35 tworzony jest obiekt klasy ZwyklyKot. Zostaje wywołany konstruktor klasy, co jest widoczne w linii 2 wydruku.
W linii 36 main() informuje, że będzie wywoływać funkcję FunkcjaPierwsza (). Informacja jest widoczna w 3 linii wydruku. Ponieważ funkcja FunkcjaPierwsza () pobiera obiekt klasy ZwyklyKot przez wartość, dlatego na stosie musi zostać stworzona kopia obiektu. Zostaje wywołany konstruktor kopiujący, o czym informuje nas 4 linia wydruku.
Wartość zwracana z funkcji FunkcjaPierwsza () nie jest przypisywana do żadnego
obiektu, zatem obiekt tworzony w momencie wyjścia z funkcji jest natychmiast