有一些代碼如下:一類變量分配值
class A{
private :
int a, b;
public :
A(int x):a(x),b(a*a){}
int getA(){
return a;
}
int getB(){
return b;
}
};
int main(){
A a=13;
printf("%d %d\n", a.getA(), a.getB());
return 0;
}
線A a=13
,我不明白它是如何調用構造函數,爲什麼? 我認爲沒有關於演員的任何定義,並且不會被編譯,但它運行良好並且被稱爲構造函數。
如果你不想隱式轉換,定義構造函數'explicit'。 – yizzlez 2014-10-17 15:58:31