타입 변환 연산자

C/C++/VC++ / MFC 2009. 8. 13. 17:05

C++ 에서는 타입 변환 연산자라는 기능이 있습니다.
이걸 사용하면은 클래스가 일반 타입처럼 암시적 변환이 가능합니다.

아래는 예제 클래스 입니다.
차때고 포때고 간단하게 작성했습니다.
클래스의 목적은 int의 기능을 대신하는 클래스입니다.
class MyInt
{
private:
    int m_nNum;

public:
    MyInt(int i) : m_nNum(i)  {}
    operator int() const {
      return m_nNum;
    }
    MyInt& operator =(int i)  { 
         m_nNum = i; return *this; 
    }
};
보통 연산자 오버로딩 후에는 반환값이 있습니다.
    MyInt& operator =(int i)      {   m_nNum = i; return *this; }
이런것 들 말이죠
그렇지만

연산자 오버로딩은 연산자가 함수 형태라고 해서 
리턴값을 써주면 안됩니다.
    operator int() const    {  return m_nNum;  }         // 컴파일됨
    int operator int() const    {  return m_nNum;  }     // 에러


참고 : The C++ Programming Language
posted by 뚱2