상수 값

해당 const 키워드 지정 변수 값은 상수 이므로 프로그래머가를 수정 하지 못하게 하도록 컴파일러에 지시 합니다.

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

C + +에서 사용할 수 있는 const 키워드 대신의 # define 상수 값을 정의 하는 전처리기 지시문입니다.정의 된 값 const 형식 검사 될 수, 및 상수 식 대신 사용할 수 있습니다.C + +에서 배열 크기를 지정할 수 있습니다 한 const 변수는 다음과 같습니다:

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

C 상수 값은 기본 외부 링크를 따라서가 소스 파일에만 나타날 수 있습니다.상수 값은 기본 내부 링크에는 C++에서 헤더 파일에 나타날 수 있습니다.

해당 const 키워드 포인터 선언에도 사용 될 수 있습니다.

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

로 선언 된 변수에 대 한 포인터 const 도로 선언 하는 포인터 할당 될 수 있습니다 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
}

Output

test
test

함수 포인터를 통해 전달 되는 매개 변수를 수정 하지 못하게 하려면 함수 매개 변수로 포인터 상수 데이터를 사용할 수 있습니다.

선언 되는 개체에 대 한 const에 호출할 수 있습니다 상수 멤버 함수.이렇게 하면 상수 개체를 절대로 수정 됩니다.

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

비상수 개체에 대 한 함수 상수 또는 비상수 멤버를 호출할 수 있습니다.사용 하 여 멤버 함수 오버도 로드 하는 const 키워드입니다. 이 상수와 비상수 개체에 대해 호출 하는 함수를 다른 버전이 있습니다.

생성자 나 소멸자를 선언할 수 없습니다. 해당 const 키워드입니다.

357syhfh.collapse_all(ko-kr,VS.110).gifC 및 C++ 상수 차이

변수로 선언 const 는 C 소스 코드 파일에는 이렇게.

const int i = 2;

다음이 변수에 다른 모듈에는 다음과 같이 사용 하면 됩니다.

extern const int i;

하지만 C++에서 동일한 동작을 얻으려면 하면 선언 해야 하면 const 변수를:

extern const int i = 2;

선언 하려는 경우에 extern 변수에서 사용 하는 C 소스 코드 파일에서 사용할 C++ 소스 코드 파일.

extern "C" const int x=10;

이름에 C++ 컴파일러에 의해 관리 되지 않도록.

참고 항목

참조

const (C++)

상수 멤버 함수