定义:
当一个构造函数只有一个参数,而且该参数又不是本类的const引用时,这种构造函数称为转换构造函数。
code:
#include<iostream>
using namespace std;
class Complex{
public:
double real , imag;
Complex(int i ){ //类型转换构造函数
cout << "quote" << endl;
real = i ;
imag = 0;
}
Complex(double r , double i){
real = r;
imag = i;
}
};
int main(){
Complex c1(7 , 8);
Complex c2 = 12; //初始化,不是赋值,不产生临时对象
c1 = 9; //赋值 ,9被自动转换为一个complex对象
cout << c1.real << "," << c1.imag << endl;
return 0;
}
运行结果如图:
由结果可知,语句Complex c2 = 12和c1 = 9均分别调用类型转换构造函数,其中由于后者改变了c1中的实部和虚部的值,所以输出结果改变。