类型转换构造函数
表现形式:只有一个参数,而且不是复制构造函数的构造函数,一般就可以看作是类型转换构造函数。
当需要时,编译系统会自动调用转换构造函数,建立一个无名的临时对象(或临时变量)
目的:实现类型的自动转换
class Complex
{
public:
double real,imag;
Complex (int i)//类型转换构造函数
{
cout<<"IntConstructor called"<<endl;
real=i;imag=0;
}
Complex(double r,doubel i){
real=r;
imag=i;
}
};
int main()
{
Complex c1(5,6);
Complex c2=12;//对象的初始化语句,调用类型转换构造函数.
//输出:IntConstructor called
c1=9;//调用临时转换构造函数。9被自动转换成一个临时Complex对象
//输出:IntConstructor called
cout<<c1.real<<","<<c1.imag<<endl;//输出:9,0
return 0;
}