[STL] 클래스 타입 변환 연산자 오버로딩

클래스 타입 변환 연산자
타입 변환 연산자 오버로딩을 통해 자기 자신의 타입을 다른 타입으로 변환
소스코드
#include <iostream>
using namespace std;

class Point {
	int x;
	int y;

public:
	explicit Point(int _x = 0, int _y = 0) : x(_x), y(_y) {}
	void Print() const { cout << x << ',' << y << endl; }

	//포인터 객체를 int형으로 변환
	operator int() const {
		return x;
	}
};

void main() {
	int n = 10;

	Point pt(2, 3);
	n = pt; //pt.operator int() 암시적 호출

	//operator int()를 통해 pt의 x값만 반환시켜 n에 들어가기 때문에 pt의 x값인 2가 n에 들어가 있음.
	cout << n << endl;
}
코드 내용
Point형 pt를 생성자 매개변수 2,3을 전달하여 생성.

int형 n에 pt를 넣으면 타입변환 오버로딩 함수가 호출되어 this.pt의 x값만 반환되며 n에 들어가게됨.

그 결과 n에는 pt의 2값이 들어갈 수 있어 결과적으로 2가 출력.
실행 결과

 

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

[STL] 함수 포인터 선언과 사용  (0) 2025.02.15
[STL] 1장 문제풀이  (0) 2025.02.15
[STL] 타입 변환 연산자 오버로딩  (0) 2025.02.09
[STL] 스마트 포인터  (0) 2025.02.09
[STL] 배열 인덱스 연산자 오버로딩  (0) 2025.02.09