常見構(gòu)造函數(shù)的形式 C++中缺省構(gòu)造函數(shù)與無參構(gòu)造函數(shù)有什么區(qū)別?
C++中缺省構(gòu)造函數(shù)與無參構(gòu)造函數(shù)有什么區(qū)別?例如,如果您定義了一個類a,但其中沒有編寫構(gòu)造函數(shù),系統(tǒng)將自動為您生成一個默認構(gòu)造函數(shù)。函數(shù)是一個()。默認構(gòu)造函數(shù)沒有參數(shù),因此它也是無參數(shù)構(gòu)造函數(shù)。非
C++中缺省構(gòu)造函數(shù)與無參構(gòu)造函數(shù)有什么區(qū)別?
例如,如果您定義了一個類a,但其中沒有編寫構(gòu)造函數(shù),系統(tǒng)將自動為您生成一個默認構(gòu)造函數(shù)。函數(shù)是一個()。默認構(gòu)造函數(shù)沒有參數(shù),因此它也是無參數(shù)構(gòu)造函數(shù)。非參數(shù)構(gòu)造函數(shù)是一個沒有參數(shù)的函數(shù)。說白了,函數(shù)的括號里什么都沒有。例如,具有默認值的()構(gòu)造函數(shù)是具有參數(shù)的構(gòu)造函數(shù),但是如果調(diào)用它而不傳入任何參數(shù),則使用默認值。A(int i=0){cout<< i<< endl}如果在main函數(shù)中調(diào)用A(),則輸出默認值0。如果在調(diào)用時傳入值a(2),則會輸出傳入的值,即2
int m=1不會將m賦值為1,但m的默認值是1,如果寫入ca a[2],則兩個ca對象都會調(diào)用默認構(gòu)造函數(shù)。如果不傳遞參數(shù),則默認參數(shù)m為1,因此第一次x=0 1 1=2,第二次CX大于1,因此為x=0 1 2=3。稍后編寫cab(10)來調(diào)用構(gòu)造函數(shù),并指定參數(shù)m為10,因此x=0103=13。