본문 바로가기
프로그래밍 ( Programming )/C++

[C++] 함수 뒤에 Const 붙이는 이유

by Jayce_choi 2020. 12. 18.
반응형

우연히 c++을 공부하다가 함수 뒤에 const를 붙이는 것을 보았습니다.

기본적으로 const constant 즉 상수라는 의미를 지녔습니다
변수는 반대로 상황에 따라 값이 변하지만 const를 지정함으로써 값을 절대 바꿀 수 없게 만듭니다.

즉 코드와 같이 a라는 변수를 const로 선언하고  a에다가 다시 10을 대입해주려고 하면 오류가 납니다

 

다시 본론으로 돌아와서 함수 뒤에 const가 붙는 의미는 

현재 ShowPersonInfo라는 함수 선언 뒤에 const를 붙여뒀습니다. 현재 함수 안에 멤버 변수 age 1을 대입하려는 시도를 했는데 오류가 발생하였습니다.

const의 역할은 이러한 클래스가 있고 그 안에 멤버 변수와 함수들이 있을 때 const를 붙임으로써 해당 함수에서 객체의 멤버를 변경할 수 없도록 하기 위해서 사용합니다

 

 

(추가 설명) #define const의 차이 
둘은 모두 고정된 값을 선언하는 것에 대해 공통점을 가지고 있습니다.
하지만 둘의 차이는 있습니다.

const를 통한 변수 선언은 메모리가 할당되고 변수의 type을 적어줌으로써 에러를 확인하기 쉽다는 장점을 가지기 때문에 #define 보다는 더 안전합니다또한 const가 붙음으로써 READ_ONLY가 되고 라이브러리와 같은 곳에서 많이 쓰이기도 합니다.  그래서 되도록이면 const를 이용해서 선언을 하는 게 좋습니다.

여담으로는 C가 초기에 나왔을 때는 const 개념이 없었고 후에 #define 개념을 보완하기 위해서 나왔다고도 합니다.

 

반응형

댓글