사용자가 직접 정의해서 사용할 수 있는 타입 변환은 두 가지가 있습니다.
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()
}