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ż:

2 komentarzy

Jest to mój pierwszy artykuł, więc prosze o wyrozumiałość ;)