C++/c++ basic

6. Wrapper 클래스 - 타입변환 연산자

safy 2022. 12. 21. 11:46
728x90
반응형

이전 글 & 참고 글

2022.12.21 - [분류 전체보기] - 5. 연산자 오버로딩, friend 키워드

 

5. 연산자 오버로딩, friend 키워드

이전 글 2022.12.21 - [C++/c++ basic] - 4. implicit, explicit, mutable 키워드 4. implicit, explicit, mutable 키워드 이전 글 2022.12.21 - [C++/c++ basic] - 3. copy consturctor 3. copy consturctor 이전 글 2022.12.21 - [C++/c++ basic] - 2. refer

projecthub.tistory.com

아래의 글을 읽기 전에 이전 글을 먼저 읽고 오길 추천한다.


Wrapper 클래스

 

기본 자료형들을 객체로써 자루어야 할 때, 사용된다.

아래는 int 자료형을 감싸는 int Wrapper 클래스 Int 를 구현한 것이다.

operator int() {return data;} 를 선언한 이유는, 

 

Wrapper 클래스인 Int 클래스의 객체를 int 형 변수로 컴파일러에게 인식시키기 위함이다.

이렇게 된다면, operator+ 등과 같은 모든 연산자에 대해 선언을 따로 하지 않아도 연산자 수행이 가능하다.

operator (변환하고자 하는 타입) ()

클래스 객체를 변환하고자 하는 타입으로 변환시켜 처리한다.

class Int
{
    int data;
     
public:
    Int(int data) : data(data) {}
    Int(const Int& i) : data(i.data) {}
 
    operator int() {return data;}
};
 
int main()
{
    Int x = 3;
    int a = x + 4;
     
    x = a * 2 + x + 4;
    std::cout << x << std::endl;
 
    return 0;
}
// 출력은 21


출력을 보면, Int 객체가 int 변수 처럼 정확히 동작했음을 알 수 있다.

728x90
반응형