const와 객체 - 멤버변수상수화,멤버함수상수화,객체상수화
- 프로그래밍/C++
- 2011. 3. 24. 10:45
1.const 사용방법(복습)
const int n1 = 10; //변수를 상수화
const int* n2; //n2가 가르키는 값이 상수
int* const n3 ; //n3가 가리키는 주소값이 상수
const int* const n4 ; //둘다 상수
//const 이상한 사용법(되긴 된다)
int a = 10;
int b = 20;
int const * n5 = &a; //n5가 가르키는 값이 상수
p = &b; //상관없음
*p = 30; //에러!!!
const int const * p; //값의 상수화를 두번함( 경고뜸 )
2.객체와 const의 관계
1.멤버변수를 const로 상수화 -> 반드시 초기화 리스트로 초기화 시켜줘야함 (생성자에서 대입할수 없음)
2.멤버함수를 const로 상수화 -> 1.이 함수를 외부에서 호출했을때 이 함수로 멤버변수를 변경할 수 없음.
2.또한, 상수화된 함수는 다른 상수화 되지않은 멤버함수를 부를수 없음.
3.또한, 상수화된 함수는 멤버변수의 주소값을 리턴 할 수 없다.
( 리턴하기 위해선 함수 리턴값에 const로 넣어줘야함 )
( 리턴하기 위해선 함수 리턴값에 const로 넣어줘야함 )
3.객체를 const로 상수화 시켜서 선언해서 사용할 경우 ->
1) 객체가 상수화되면, 어떠한 경로를 통해서든 멤버 변수의 조작이 불가능.
2) 상수화된 멤버 함수만 호출 가능
(일반 멤버 함수는 멤버 변수를 조작하지 않더라도 호출 불가능.)
(일반 멤버 함수는 멤버 변수를 조작하지 않더라도 호출 불가능.)
이 글을 공유하기