Wrapper 클래스, 타입 변환 연산자

하루공부·2024년 1월 14일
0

C++

목록 보기
3/25
post-thumbnail

C++ 아이콘 제작자: Darius Dan - Flaticon

wrapper

  • 단어 그대로 문어가를 감싼다.

    c++에서 어떤 때때로 기본 자료형을 객체로 사용할 필요할 때가 있다.
    이 때 wrapper를 사용해 기본 자료형을 객체로 사용

class Int
{
   int data;
public:
   Int(int data) : data(data) {}
   Int(const Int& i) : data(i.data) {}
};
  • 이러면 Int라는 객체를 만들어 int형 데이터를 저장하니 int자료형처럼 사용할 수 있다.

    어떨 땐 int형 그 자체 타입으로 사용할 필요가 있고
    또 어쩔 때 나만의 클래스 타입으로 사용할 필요가 있을 수 있다
    이럴 때 Wrapper클래스를 사용한다.

  • 하지만 정확히 int 자료형 처럼 사용하기 위해 관련 연산을 하는 함수들을 다 만들어줘야 한다.

    하지만 그러기엔 너무나 많은 함수를 만들어야 할 수 있다.
    ==> 그래서 Int형 클래스 즉 wrapper 클래스 자체를 원하는 컴파일러가 원하는 타입 처럼 느끼게 만들자
    ==> 타입 변환 연산자



타입 변환 연산자

  • 어떠한 객체를 내가 원하는 타입의 변수처럼 활용하고 싶을 때 컴파일러가 그 변수인 걸로 생각하게 만든다.
  • 형태: operator (변환 하고자 하는 타입) ( 작업 )
  • 주의할 점 리턴 타입을 써주면 안된다.
class Int {
   int data;
public:
   Int(int data) : data(data) {}
   Int(const Int& i) : data(i.data) {}
   operator int() { return data; }
};
  • 이제 따로 int형 변수에 관련된 함수를 만들지 않아도 관련 함수들을 그냥 사용할 수 있다.

<참조>
공부한 내용 복습

개인 공부 기록용 블로그입니다.
틀린 부분 있으다면 지적해주시면 감사하겠습니다!!

0개의 댓글