Zaawansowane funkcje 191
1:
2:
3:
4:
5:
6:
7:
8:
9:
10
11
12
13
14
15
16
17
18
19
20 21 22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// Listing 13.3 // Konstruktory kopiujące
tinclude <iostream.h>
class KOT
public:
KOTO; // konstruktor domycelny
KOT (const KOT S) ; // konstruktor kopiuj 1cy
-KOTO; // destruktor
int PobierzHiekO const { return *jegoWiek; } int PobierzWagaO const { return *jegoWaga; } void UstawWiek(int wiek) { *jegoWiek = wiek; }
private:
int ‘jegoWiek; int *jegoWaga;
KOT::KOT()
jegoWiek = new int; jegoWaga = new int;
♦jegoWiek = 5;
♦jegoWaga = 9;
KOT::KOT(const KOT & rhs)
{
jegoWiek = new int; jegoWaga = new int;
♦jegoWiek = rhs.PobierzWiek();
♦jegoWaga = rhs.PobierzWaga();
KOT::-KOT()
delete jegoWiek; jegoWiek = 0; delete jegoWaga; jegoWaga = 0;
int main()
KOT frisky;
cout « „wiek Frisky: " « frisky.PobierzWiek() « endl; cout « "Niech Frisky ma 6 lat...\n"; frisky.UstawWiek(6);
cout « "Tworzenie Boot na podstawie Frisky\n";
KOT boot(frisky);
cout « "wiek Frisky: " « frisky.PobierzWiek() « endl; cout « "wiek Boot: " « boot.PobierzWiek() « endl; cout « "Niech Frisky ma 7 lat...\n”; frisky.UstawWiek (7);
Listing 13.3. Konstruktory kopiujące.
1: // Listing 13.3
2: // Konstruktory kopiujące
3:
4: Kinclude <iostream.h>
5:
6: class KOT
7: i
8: public:
9: KOT(); // konstruktor doraycelny
10: KOT (const KOT 4); // konstruktor kopiujacy
11: -KOT(); // destruktor
12: int PobierzWiek() const ( return ‘jegoWiek,- }
13: int PobierzWaga() const { return ‘jegoWaga; )
14: void UstawWiek(int wiek) { *jegoWiek = wiek; )
15:
16: private:
17: int ‘jegoWiek;
18: int ‘jegoWaga;
19: };
20:
21: KOT::KOT()
22: {
23: jegoWiek = new int;
24: jegoWaga = new int;
25: ‘jegoWiek = 5;
26: ‘jegoWaga = 9;
27: }
28:
29: KOT::KOT(const KOT 6 rhs)
30: {
31: jegoWiek = new int;
32: jegoWaga = new int;
33: ‘jegoWiek = rhs.PobierzWiek();
34: ‘jegoWaga = rhs.PobierzWaga();
35: )
36:
37: KOT::~KOT()
38: {
39: delete jegoWiek;
40: jegoWiek = 0;
41: delete jegoWaga;
42: jegoWaga = 0;
43: }
44:
45: int main()
46: (
47: KOT frisky;
48: cout « „wiek Frisky: " « frisky.PobierzWiek() « endl;
49: cout « "Niech Frisky ma 6 lat...\n";
50: frisky.UstawWiek(6);
51: cout « "Tworzenie Boot na podstawie Frisky\n";
52: KOT boot(frisky);
53: cout « "wiek Frisky: " « frisky.PobierzWiek() « endl;
54: cout « "wiek Boot: " « boot.PobierzWiek() « endl;
55: cout « "Niech Frisky ma 7 lat...\n";
56: frisky.OstawWiek(7);