C++中構(gòu)造函數(shù)的參數(shù)缺省的詳解
C++中構(gòu)造函數(shù)的參數(shù)缺省的詳解
前言:
構(gòu)造函數(shù)中參數(shù)的值既可以通過實(shí)參傳遞,也可以指定為某些默認(rèn)值,即如果用戶不指定實(shí)參值,編譯系統(tǒng)就使形參取默認(rèn)值。在構(gòu)造函數(shù)中也可以采用這樣的方法來實(shí)現(xiàn)初始化。
#include <iostream> using namespace std; class A { public : A(int aa=0,int bb=00); //在聲明構(gòu)造函數(shù)時指定默認(rèn)參數(shù) int volume( ); int a; int b; }; int main( ) { A obj(4); cout<<obj.a<<" "<<obj.b; return 0; }
程序運(yùn)行結(jié)果為
4 0
可以看到: 在構(gòu)造函數(shù)中使用默認(rèn)參數(shù)是方便而有效的,它提供了建立對象時的多種選擇,它的作用相當(dāng)于好幾個重載的構(gòu)造函數(shù)。
它的好處是: 即使在調(diào)用構(gòu)造函數(shù)時沒有提供實(shí)參值,不僅不會出錯,而且還確保按照默認(rèn)的參數(shù)值對對象進(jìn)行初始化。尤其在希望對每一個對象都有同樣的初始化狀況時用這種方法更為方便。
關(guān)于構(gòu)造函數(shù)默認(rèn)值的幾點(diǎn)說明:
- 應(yīng)該在聲明構(gòu)造函數(shù)時指定默認(rèn)值,而不能只在定義構(gòu)造函數(shù)時指定默認(rèn)值。
- 程序第5行在聲明構(gòu)造函數(shù)時,形參名可以省略。
- 如果構(gòu)造函數(shù)的全部參數(shù)都指定了默認(rèn)值,則在定義對象時可以給一個或幾個實(shí)參,也可以不給出實(shí)參。
- 在一個類中定義了全部是默認(rèn)參數(shù)的構(gòu)造函數(shù)后,不能再定義重載構(gòu)造函數(shù)。
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
C++讀取NC數(shù)據(jù)的結(jié)果與真實(shí)數(shù)值不一致的解決方法
本文介紹基于C++ 語言的netCDF庫讀取.nc格式的柵格文件時,代碼讀取到的數(shù)據(jù)與柵格文件的實(shí)際數(shù)據(jù)不一致的解決方法,文中通過代碼示例和圖文講解的非常詳細(xì),需要的朋友可以參考下2024-03-03