150
*pJeden = 5;
Napisanie takiej instrukcji spowoduje komunikat błędu.
NOWY TERMIN
pDwa jest stałym wskaźnikiem na int. Wartość, na którą wskazuje może się zmienić, ale wskaźnik nie. Oznacza to, że nie wolno Ci napisać tak:
pDwa = &x;
NOWY TERMIN
pTrzy jest stałym wskaźnikiem na stałą int. Zarówno wartość jak i wskaźnik nie mogą się zmienić.
Pamiętaj, aby właściwie umieszczać w deklaracjach słowo kluczowe const. Umieszczenie go przed nazwą typu, na samym początku deklaracji wskaźnika powoduje, że wskaźnik jest stały i nie może ulec zmianie. Słowo const po gwiazdce i przed nazwą typu obiektu powoduje, że obiekt nie może być zmieniony z wykorzystaniem deklarowanego wskaźnika. Oto przykłady: const int * pl; // wskazywany int jest stały
int * const p2; // wskaźnik p2 jest stały i nie może zostać zmieniony;
W trakcie godziny 6, „Proste klasy", nauczyłeś się, że możesz deklarować funkcje wewnętrzne z wykorzystaniem słowa kluczowego const. Tak zadeklarowana funkcja nie ma prawa zmieniać zawartości obiektu i każda próba modyfikacji będzie przez kompilator sygnalizowana jako błąd.
Jeśli zadeklarujesz wskaźnik do obiektu typu const, to jedyne funkcje, które wolno Ci, z wykorzystaniem tego wskaźnika wywołać, również muszą być zadeklarowane jako const. Ilustruje to listing 10.5.
Listing 10.5. Wykorzystanie wskaźników do obiektów zadeklarowanych jako const
1: // Listing 10.5
2: // Wykorzystanie wskaźników z metodami const
3:
4: #include <iostream.h>5:
6: class Prostokat7: {
8: public:
9: Prostokąt() ;
10: -Prostokąt!);
11: void UstawDlugosc(int dlugosc) ( jegoDlugosc = dlugosc; )
12: int PobierzDlugosc() const ( return jegoDlugosc; }
13:
14: void UstawSzerokosc(int szerokość) { jegoSzerokosc =
'■•szerokość; }
15: int PobierzSzerokosc() const { return jegoSzerokosc; )
16:
150
*pJeden = 5;
Napisanie takiej instrukcji spowoduje komunikat błędu.
NOWY TERMIN
pDwa jest stałym wskaźnikiem na int. Wartość, na którą wskazuje może się zmienić, ale wskaźnik nie. Oznacza to, że nie wolno Ci napisać tak:
pDwa = £x;
NOWY TERMIN
pTrzy jest stałym wskaźnikiem na stałą int. Zarówno wartość jak i wskaźnik nie mogą się zmienić.
Pamiętaj, aby właściwie umieszczać w deklaracjach słowo kluczowe const. Umieszczenie go przed nazwą typu, na samym początku deklaracji wskaźnika powoduje, że wskaźnik jest stały i nie może ulec zmianie. Słowo const po gwiazdce i przed nazwą typu obiektu powoduje, że obiekt nie może być zmieniony z wykorzystaniem deklarowanego wskaźnika. Oto przykłady: const int * pl; // wskazywany int jest stały
int * const p2; // wskaźnik p2 jest stały i nie może zostać zmieniony;
W trakcie godziny 6, „Proste klasy", nauczyłeś się, że możesz deklarować funkcje wewnętrzne z wykorzystaniem słowa kluczowego const. Tak zadeklarowana funkcja nie ma prawa zmieniać zawartości obiektu i każda próba modyfikacji będzie przez kompilator sygnalizowana jako błąd.
Jeśli zadeklarujesz wskaźnik do obiektu typu const, to jedyne funkcje, które wolno Ci, z wykorzystaniem tego wskaźnika wywołać, również muszą być zadeklarowane jako const. Ilustruje to listing 10.5.
Listing 10.5. Wykorzystanie wskaźników do obiektów zadeklarowanych jako const
1: II Listing 10.5
2: // Wykorzystanie wskaźników z metodami const
3:
4: #include <iostream.h>5:
6: cłass Prostokat7: {
8: public:
9: Prostokąt () ;
10: -Prostokąt () ;
11: void UstawDlugosc(int dlugosc) { jegoDlugosc = dlugosc; )
12: int PobierzDlugosc() const { return jegoDlugosc; }
13:
14: void OstawSzerokosc(int szerokość) ( jegoSzerokosc =
**szerokosc; )
int PobierzSzerokosc() const ( return jegoSzerokosc; }
15: