Udostępnij za pośrednictwem


Wartości stałe

Const słowa kluczowego Określa, że wartość zmiennej jest stała i nakazuje kompilatorowi, aby zapobiec jego modyfikowania programista.

// constant_values1.cpp
int main() {
   const int i = 5;
   i = 10;   // C3892
   i++;   // C2105
}

W języku C++, można użyć const słowa kluczowego zamiast # define dyrektywy preprocesora, aby zdefiniować wartości stałej.Wartości określone w const podlegają kontroli typu i mogą być wykorzystywane w miejsce wyrażenia stałe.W języku C++, można określić rozmiaru tablicy, z const zmienną w następujący sposób:

// constant_values2.cpp
// compile with: /c
const int maxarray = 255;
char store_char[maxarray];  // allowed in C++; not allowed in C

C, domyślne wartości stałych do zewnętrznych powiązania, więc one mogą pojawiać się tylko pliki źródłowe.W języku C++, domyślne wartości stałe na wewnętrzne powiązania, które pozwala im pojawiają się w plikach nagłówkowych.

Const można również użyć słowa kluczowego w deklaracjach wskaźnik.

// constant_values3.cpp
int main() {
   char *mybuf = 0, *yourbuf;
   char *const aptr = mybuf;
   *aptr = 'a';   // OK
   aptr = yourbuf;   // C3892
}

Wskaźnik do zmiennej, deklarowane jako const może być przypisana tylko do wskaźnika, który również jest zadeklarowana jako const.

// constant_values4.cpp
#include <stdio.h>
int main() {
   const char *mybuf = "test";
   char *yourbuf = "test2";
   printf_s("%s\n", mybuf);

   const char *bptr = mybuf;   // Pointer to constant data
   printf_s("%s\n", bptr);
   
   // *bptr = 'a';   // Error
}

Dane wyjściowe

test
test

Aby zapobiec modyfikując parametr przekazywany za pomocą wskaźnika funkcji, można użyć wskaźników do stałej danych jako parametry funkcji.

Dla obiektów, które zostały zgłoszone jako const, można wywołać tylko Funkcje stały składnik.Gwarantuje to, że stałej obiektu nie jest nigdy modyfikowana.

birthday.getMonth();    // Okay
birthday.setMonth( 4 ); // Error

Stałe lub nonconstant Członkowskich mogą wywoływać funkcje dla obiektu nonconstant.Można również przeciążenia, używając funkcji Członkowskich const słowa kluczowego; zezwala się na inną wersję funkcji do wywołania dla obiektów stałą i nonconstant.

Nie można zadeklarować konstruktory i destruktory z const słowa kluczowego.

357syhfh.collapse_all(pl-pl,VS.110).gifC i C++ const różnice

Kiedy zadeklarować zmienną jako const w pliku kodu źródłowego c takim jak:

const int i = 2;

Ta zmienna można następnie użyć w module innym w następujący sposób:

extern const int i;

Aby uzyskać takie samo zachowanie w języku C++, należy zadeklarować, ale swoje const zmienną jako:

extern const int i = 2;

Jeśli chcesz zadeklarować extern zmiennej w plik kodu źródłowego języka C++, do użytku w pliku kodu źródłowego c wykorzystanie:

extern "C" const int x=10;

Aby zapobiec przekręcona nazwa, przez kompilator C++.

Zobacz też

Informacje

Const (C++)

Stała funkcji elementów członkowskich