사용자가 직접 정의해서 사용할 수 있는 타입 변환은 두 가지가 있습니다.

class B
{
public:
	B() { cout << "B() 생성자" << endl; }
	B(A & _a} { cout << ...
	B(int n) ...
	B(double d) ...
}
int main()
{
	B b; //B () 생성자 호출
	b = a; // 암시적 생성자 호출 후 대입
	b = n;
	b = d;
}

전에 윤성우 C++ 에서 나온 내용이지만 한번도 사용해보지 않은 내용이고 복습도 할 겸 다시 기록한다.

생성자 앞에 explicit 을 달아 명시적으로 만 불릴수 있도록 할 수도 있다.

타입 변환 연산자 오버로딩을 이용한 타입 변환

public:
operator A()
{

}

operator int()...
operator double() ...

int main()
{
	A a;
	int n;
	double d;
	
	a = b; // 암시적 호출
	n = b;
	d = b;
	
	a = b.operator A();// 명시적 호출
	n = b.operator int();
	d = b.operator double() 
}