Project Hub

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

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
반응형

'C++ > c++ basic' 카테고리의 다른 글

8. 입출력 연산자 오버로딩  (2) 2022.12.21
7. 이항 연산자 오버로딩  (2) 2022.12.21
5. 연산자 오버로딩, friend 키워드  (3) 2022.12.21
4. implicit, explicit, mutable 키워드  (1) 2022.12.21
3. copy consturctor  (1) 2022.12.21
Comments