目的
? 實(shí)現(xiàn)類型的自動(dòng)轉(zhuǎn)換
特點(diǎn)
? 只有一個(gè)參數(shù)
? 不是復(fù)制構(gòu)造函數(shù)
編譯系統(tǒng)會(huì)自動(dòng)調(diào)用-> 轉(zhuǎn)換構(gòu)造函數(shù)->建立一個(gè)臨時(shí)對象 / 臨時(shí)變量
class Complex {
public:
double real, imag;
Complex( int i ) { //類型轉(zhuǎn)換構(gòu)造函數(shù)
cout << “IntConstructor called” << endl;
real = i; imag = 0;
}
Complex( double r, double i ) { real = r; imag = i; }
};
int main () {
Complex c1(7, 8);
//轉(zhuǎn)換方式一
Complex c2 = 12;
//轉(zhuǎn)換方式二
c1 = 9; // 9被自動(dòng)轉(zhuǎn)換成一個(gè)臨時(shí)Complex對象
cout << c1.real << "," << c1.imag << endl;
return 0;
}
輸出為:
IntConstructor called
IntConstructor called
9,0