148 Godzina 10
Listing 10.4. Wykorzystanie wskaźnika this
1:
2:
3:
4:
6:
8:
9:
10:
11:
}
12:
13:
14:
15:
16:
17:
19:
20:
21:
22:
24:
25:
26:
27:
28:
29:
30:
32:
33:
34:
35:
36:
37:
38:
39:
40:
// Listing 10.4
// Wykorzystanie wskaźnika this
#include <iostream.h>5: class Prostokat7: { public:
Prostokąt () ;
“Prostokąt () ;
void UstawDlugosc(int dlugosc) { this->jegoDlugosc = dlugosc;
int PobierzDlugosc() const { return this->jegoDlugosc; }
void UstawSzerokosc(int szerokość) { jegoSzerokosc = '“szerokość; }
int PobierzSzerokosc() const { return jegoSzerokosc; }
private:18: int jegoDlugosc;
int jegoSzerokosc;
Prostokąt::Prostokąt()23: {
jegoSzerokosc = 5; jegoDlugosc =10;
Prostokąt::“Prostokąt()
int main() 31: (
Prostokąt tProst;
cout « "Prostokąt ma " « tProst.PobierzDlugosc() « " “metrów dlugosc.\n";
cout « "Prostokąt ma " « tProst.PobierzSzerokosc() « " '“metrów szerokości.\n"; tProst.UstawDlugosc(20); tProst.UstawSzerokosc(10);
cout « "Prostokąt ma " « tProst.PobierzDlugosc() « " '“metrów dlugosc.\n";
cout « "Prostokąt ma " « tProst.PobierzSzerokosc() « " '“metrów szerokości.\n"; return 0;
Prostokąt ma 10 metrów długości. Prostokąt ma 5 metrów szerokości. Prostokąt ma 20 metrów długości. Prostokąt ma 10 metrów szerokości.
ANALIZA:
Funkcje dostępu PobierzDlugosc () i UstawDlugosc () bezpośrednio wykorzystują wskaźnik this do odczytania i modyfikacji zmien-nych wewnętrznych obiektu Prostokąt. PobierzSzerokosc () i UstawSzerokosc () dokonują odczytania i modyfikacji klasyczną metodą. Efekt jest taki sam w obu sytuacjach, jednak metoda klasyczna jest bardziej przejrzysta.
Listing 10.4. Wykorzystanie wskaźnika this
1:
2:
3:
4:
6:
8:
9:
10:
11:
)
12:
13:
14 :
15:
16:
17:
19:
20:
21:
22:
24:
25:
26:
27:
28:
29:
30:
32:
33:
34:
35:
36:
37:
38:
39:
40:
U Listing 10.4
// Wykorzystanie wskaźnika this
#include <iostream.h>5: class Prostokat7: { public:
Prostokąt () ;
-Prostokąt () ;
void UstawDlugosc(int dlugosc) { this->jegoDlugosc = dlugosc;
int PobierzDlugosc () const { return this->jegoDlugosc; }
void UstawSzerokosc(int szerokość) ( jegoSzerokosc = '"szerokość; )
int PobierzSzerokosc() const { return jegoSzerokosc; )
private:18: int jegoDlugosc;
int jegoSzerokosc;
Prostokąt::Prostokąt()23: {
jegoSzerokosc = 5; jegoDlugosc = 10;
Prostokąt::-Prostokąt()
U
int main()31: {
Prostokąt tProst;
cout « "Prostokąt ma " « tProst.PobierzDlugosc() « " '“metrów dlugosc.\n";
cout « "Prostokąt ma " « tProst.PobierzSzerokosc() « " "•metrów szerokości.\n"; tProst.UstawDlugosc(20) ; tProst.UstawSzerokosc(10) ;
cout « "Prostokąt ma " « tProst.PobierzDlugosc() « " “"metrów dlugosc. \n" ;
cout « "Prostokąt ma " « tProst.PobierzSzerokosc() « " "•metrów szerokości. \n" ; return 0;
Prostokąt ma 10 metrów długości. Prostokąt ma 5 metrów szerokości. Prostokąt ma 20 metrów długości. Prostokąt ma 10 metrów szerokości
ANALIZA:
Funkcje dostępu PobierzDlugosc () i UstawDlugosc () bezpośrednio wykorzystują wskaźnik this do odczytania i modyfikacji zmiennych wewnętrznych obiektu Prostokąt. PobierzSzerokosc () i UstawSzerokosc () dokonują odczytania i modyfikacji klasyczną metodą. Efekt jest taki sam w obu sytuacjach, jednak metoda klasyczna jest bardziej przejrzysta.