C++

Const

WhNi 2024. 3. 20. 09:44

const 는 상수라는 뜻을 가지며

 

변경할 수 없는 상수값을 의미한다.

 

중요한건, const 가 어디에 붙느냐에 따라서 달라진다는 것이다. 

 

이게 은근 헷갈린다.

 

가장 많이 쓰이고 평범한게,

 

const로 선언된 변수

int a = 5;

cosnt int b = a;

b는 a의 값이 5가 대입되며, 수정이 불가해진다.

 

그래서 확실한 수 이거나, 기준이 되는 변수를 설정할때는 const 를 붙인다.

 

포인터 선언에서 사용되는 const

	int* const ptrA = &a;
	//ptrA = 4; error

	const int* const pNum = &a;

	//	*pNum = 8; error
	//	pNum = 9; error

	const int& refNum = a;
	//refNum = 8; error
    
    //const가 붙는 단위는 전부 변경 불가가 된다.

 

함수 선언에서 사용되는 const

	const int GetNum();
	// 함수의 반환값이 상수

	void Swap(int& a, const int& b);
	// 함수 내에서, 매개변수의 값을 변경 할 수 없음
    
    void readData() const
    {
    	int x = data;
    }
    // 이 경우에는 함수가 객체 내의 메서드를 변경할 수 없고, data를 수정하게 되면 컴파일 에러가 남

 

클래스 선언에서 사용되는 const

 

클래스 전체가 const로 사용되는 경우인데, 과연 쓰는 경우가 있을지 모르겠다. 

const Myclass ob1;
// const 인 함수들만 사용가능.

 

 

이로써 const가 더 이상 안헷갈리겠지

 

const 붙은건 다 변경할 수 없는 기준이 되는 수치들이라는걸 기억하자