전통적 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  
    //  왜냐하면 여기서 변수를 수정한다면  상수 멤버를 호출한 것에 대한 것과 모순이 발생 
}
 
 
 
댓글 없음:
댓글 쓰기