C++詳解默認(rèn)參數(shù)的構(gòu)造函數(shù)及簡(jiǎn)單實(shí)例代碼
現(xiàn)在給大家介紹下 有默認(rèn)參數(shù)的構(gòu)造函數(shù):
大家知道函數(shù)獲取形參的時(shí)候是通過函數(shù)調(diào)用時(shí)在實(shí)參里獲得的,因此我們必須保證 實(shí)參的個(gè)數(shù) 和 形參的個(gè)數(shù)必須相同。而且有些情況下我們對(duì)于實(shí)參或許都是個(gè)固定的值。例如 我們需要計(jì)算長(zhǎng)方形的面積 長(zhǎng)x寬 但是用戶可以不輸入長(zhǎng) 而且如果用戶指定的情況下默認(rèn)的長(zhǎng)為 3,但是如果用戶指定了則使用用戶指定的寬 這就是用到默認(rèn)參數(shù)了!
代碼:
#include <iostream> using namespace std; int area(int l,int w=3);// 函數(shù)聲明 并定義默認(rèn)參數(shù)w=3; int main(){ int c=4; //長(zhǎng) int k=5; int res; //結(jié)果 res = area(c); cout<<res<<endl; return 0; } int area(int l,int w){//函數(shù)定義 l長(zhǎng) w寬 int res=0; res = l*w; return res; }
例如上面的代碼,如果我們像在8行 res=area(c); 這里沒有寫成 res=area(c,w);則表示 不指定寬是多少,所以如果寫成了 后面這樣則說明用戶指定了這個(gè)長(zhǎng)方形的寬 為5;那么兩者的結(jié)果就是不同的!
前者額結(jié)果為 12
后者的記過為 20
這就是默認(rèn)參數(shù)的函數(shù) 和 沒有默認(rèn)參數(shù)函數(shù)的區(qū)別;
下面的習(xí)題:
設(shè)計(jì)函數(shù),計(jì)算長(zhǎng)方體的體積 和 長(zhǎng)方形的面積
如果用戶指定了三個(gè)參數(shù)則計(jì)算長(zhǎng)方體的 體積 如果用戶輸入2個(gè)參數(shù)則計(jì)算長(zhǎng)方形面積!
利用到含有默認(rèn)參數(shù)的構(gòu)造函數(shù);
參考代碼:
#include "stdafx.h" #include <iostream> #include <cmath> using namespace std; int area(int l,int w,int h=1);// 函數(shù)聲明 并定義默認(rèn)參數(shù)w=3; int main(){ int c=4; //長(zhǎng) int k=5;//寬 int h=2;//高 int res; //結(jié)果 res = area(c,k); int res2=area(c,k,h); cout<<"面積為 ="<<res<<endl; cout<<"體積為 ="<<res2<<endl; return 0; } int area(int l,int w,int h){//函數(shù)定義 l長(zhǎng) w寬 int res=0; res = l*w*h; return res; }
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
c++項(xiàng)目中后綴名vcxproj和sln的區(qū)別及說明
這篇文章主要介紹了c++項(xiàng)目中后綴名vcxproj和sln的區(qū)別及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05C語(yǔ)言實(shí)現(xiàn)順序表的順序查找和折半查找
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)順序表的順序查找和折半查找,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06QTableWidget設(shè)置只讓某一列可編輯的實(shí)現(xiàn)
本文介紹了如何將QTableWidget的某一列設(shè)置為可編輯,以便用戶可以輸入自定義數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08C++內(nèi)存四區(qū)之代碼區(qū)、全局區(qū)、棧區(qū)和堆區(qū)
C++編譯器會(huì)把代碼直接分為四個(gè)小區(qū),弄懂這四小區(qū)對(duì)我們理解內(nèi)存有所幫助,所以下面這篇文章主要給大家介紹了關(guān)于C++內(nèi)存四區(qū)之代碼區(qū)、全局區(qū)、棧區(qū)和堆區(qū)的相關(guān)資料,需要的朋友可以參考下2021-07-07MATLAB算法技巧和實(shí)現(xiàn)斐波那契數(shù)列的解決思路
這篇文章主要介紹了MATLAB算法技巧和實(shí)現(xiàn)斐波那契數(shù)列,這篇主要說一下自己在算法設(shè)計(jì)課上用matlab做的兩道算法題,題目解起來都比較簡(jiǎn)單,但是需要些技巧,需要的朋友可以參考下2022-12-12C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之線索二叉樹及其遍歷
這篇文章主要介紹了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之線索二叉樹及其遍歷的相關(guān)資料,為了加快查找節(jié)點(diǎn)的前驅(qū)和后繼。對(duì)二叉樹的線索化就是對(duì)二叉樹進(jìn)行一次遍歷,在遍歷的過程中檢測(cè)節(jié)點(diǎn)的左右指針是否為空,如果是空,則將他們改為指向前驅(qū)和后繼節(jié)點(diǎn)的線索,需要的朋友可以參考下2017-08-08