Post

const : 변수가 상수가 되도록 정의하는 키워드


* 함수의 인자에 const 키워드를 선언한다면 구현 부분에도 const를 추가한다

선언부

void PrintNumber(const int nValue);


구현부

void PrintNumber(const int nValue)

{

printf("%d \n", nValue);

}


* 멤버변수의 값이 멤버함수 내에서 변경되지 않도록 만들려면 함수 선언 맨 뒤에 const를 추가한다.

(지역변수는 const 함수 내에서도 값 변경이 된다)


선언부

class Level

{

int nLevel = 0;

public:

// 함수안에서 값을 변경할 수 없을 때

void SetLevel(int nValue) const;

};


구현부

void Level::SetLevel(int nValue) const

{

int temp = nValue;

//nLevel = nValue;


* const 키워드를 포인터 변수에 사용할 시 위치에 따라 의미가 달라진다.


const int* p = &a;

const가 맨 앞에 있는 경우 : 포인터가 가르키는 변수의 값을 변경시키지 못한다.

*p = 22;   (X)



int* const p = &a;

p = &b;   (X)
const가 포인터* 뒤에 있는 경우 : 포인터가 가르키는 주소를 변경하지 못한다. 

 

▲ top