전통적 Const 용법
Const char *p = greeting | 비상수 포인터 , 비상수 데이터 |
Char * const p = greeting | 상수 포인터 , 비상수 데이터 |
class에서 const
class TextBlock {
public :
...
const char & operator [] const ( std::size_t position ) const { return text[ position ] ; } // 상수 객체에 대한
const char & operator [] ( std::size_t position ) const { return text[ position ] ; } // 비상수 객체에 대한
...
}
비상수 멤버 호출 | 상수 멤버 호출 |
TextBlock tb("hello"); std::cout<< tb[0]; | const TextBlock tb("hello"); std::cout<< tb[0]; |
여기서 파생되는 유의점
std:;size_t CTexxtBock::length () const
{
// 내부에서 class 변수들을 수정한다면 error
// 왜냐하면 여기서 변수를 수정한다면 상수 멤버를 호출한 것에 대한 것과 모순이 발생
}
댓글 없음:
댓글 쓰기