Const
tharos
Słowem kluczowym const deklaruje się tzw. stałe. Obiekty z modyfikatorem const mogą być inicjalizowane, natomiast nie mogą być przypisywane poza ich inicjalizacją, np.
// ...
int a = 0;
const int b = 1;
a = 10;
// b=11; Błąd! Obiekt z modyfikatorem const nie może być zmieniany
Możliwe jest użycie funkcji składowych z przydomkiem const, dzięki temu funkcja nie będzie modyfikować jego danych składowych. Przyklad:
// ..
class przykladowa
{
public:
void funkcja_1(void)const;
void funkcja_2();
//...
};
int main()
{
przykladowa a;
const przykladowa b;
a.funkcja_1();
b.funkcja_1();
a.funkcja_2();
// b.funkcja_2(); ? bład!
}
Stałe wskaźniki i wskaźniki do stałych
Stały wskaźnik to wskaźnik, który ustawia się raz na obiekcie i nie można go zmienić:int a;
int* const b = &a;
Wskaźnik do obiektu stałego traktuje swój wskaźnik jak stałą. Nie trzeba go od razu definiować, można to zrobić później.
const *int a;
int b, c;
a = &b;
a = &c;
Stałe metody
Jeżeli dana metoda klasy zostanie określona jako const to nie będzie mogła ona zmieniać pól (atrybutów) tejże klasy.class A
{
public:
int a;
int b;
void stala_metoda() const{
cout << a << " " << b << endl; // moze odczytywać pola(atrybuty) klasy
//a++; // -> Zabronione z powodu słowa const.
//--b // -> analogicznie
};
};
Zobacz też:
obszerny :)
Jest to mój pierwszy artykuł, więc prosze o wyrozumiałość ;)