構(gòu)造函數(shù)和構(gòu)造方法 什么是缺省構(gòu)造函數(shù)?好多地方說的不一樣?
什么是缺省構(gòu)造函數(shù)?好多地方說的不一樣?默認構(gòu)造函數(shù)是沒有參數(shù)的構(gòu)造函數(shù),由系統(tǒng)為您定義。如果沒有為每個類定義任何構(gòu)造函數(shù),系統(tǒng)將為您添加默認構(gòu)造函數(shù)。注意:如果您定義了一個沒有參數(shù)的構(gòu)造函數(shù),那么這
什么是缺省構(gòu)造函數(shù)?好多地方說的不一樣?
默認構(gòu)造函數(shù)是沒有參數(shù)的構(gòu)造函數(shù),由系統(tǒng)為您定義。如果沒有為每個類定義任何構(gòu)造函數(shù),系統(tǒng)將為您添加默認構(gòu)造函數(shù)。注意:如果您定義了一個沒有參數(shù)的構(gòu)造函數(shù),那么這個構(gòu)造函數(shù)就不會被稱為默認構(gòu)造函數(shù),因為編譯器知道您已經(jīng)有了一個構(gòu)造函數(shù),所以它不會為您添加默認構(gòu)造函數(shù)。
關(guān)于缺省構(gòu)造函數(shù)的理解?
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。稍后,編寫ca B(10)是為了調(diào)用構(gòu)造函數(shù),并指示參數(shù)m是10,因此x=0 10 3=13。
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