C++之構(gòu)造函數(shù)默認(rèn)值設(shè)置方式
C++構(gòu)造函數(shù)默認(rèn)值設(shè)置
構(gòu)造函數(shù)默認(rèn)值
C++類中構(gòu)造函數(shù)設(shè)置默認(rèn)值應(yīng)當(dāng)注意:
- C++類構(gòu)造函數(shù)只能對(duì)排在最后的參數(shù)提供默認(rèn)值;
- 既可以在構(gòu)造函數(shù)的聲明中,也可以在構(gòu)造函數(shù)的實(shí)現(xiàn)中,提供缺省值,但,不能在兩者同時(shí)提供缺省默認(rèn)值。
代碼:
#include <iostream>
using namespace std;
class CTest
{
public: ? ?
? ? CTest();
? ? CTest(int _a, double _b, const bool _c = false, bool _d = true);
private:
? ? const bool c;
? ? bool d;
? ? int a;
? ? double b;?
};
CTest::CTest(int _a, double _b = 1.0, const bool _c, ?bool _d):a(_a), b(_b), c(_c), d(_d)
{
? ? cout << a << endl;
? ? cout << b << endl;
? ? cout << c << endl;
? ? cout << d << endl; ?
}
int main()
{
? ? // CTest* test = new CTest(1, 1.0, true, false);
? ? // CTest* test = new CTest(1, 1.0, true);
? ? //CTest* test = new CTest(1, 1.0);
? ? CTest* test = new CTest(1);
? ? return 0;
}C++構(gòu)造函數(shù)默認(rèn)參數(shù)使用
一 代碼
#include <iostream>
using namespace std;
class Box{
public:
Box(int h=2,int w=2,int l=2);//在聲明構(gòu)造函數(shù)時(shí)指定默認(rèn)參數(shù)
int volume();
private:
int height,width,length;
};
Box::Box(int h,int w,int len){//在定義函數(shù)時(shí)可以不指定默認(rèn)參數(shù)
height=h;
width=w;
length=len;
}
int Box::volume(){
return height*width*length;
}
int main(){
Box box1(1);//不指定第2、3個(gè)實(shí)參
cout<<"box1's volume: "<<box1.volume()<<endl;
Box box2(1,3);// 不指定第3個(gè)實(shí)參
cout<<"box2's volume: "<<box2.volume()<<endl;
Box box3;
cout<<"box3's volume:"<<box3.volume()<<endl;
return 0;
}二 運(yùn)行
[root@localhost charpter02]# ./0210 box1's volume: 4 box2's volume: 6 box3's volume:8
三 說明
該實(shí)戰(zhàn)中,定義了一個(gè)帶默認(rèn)參數(shù)的構(gòu)造函數(shù),是在聲明時(shí)指定默認(rèn)參數(shù),而定義時(shí)則可以不指定默認(rèn)參數(shù)。定義對(duì)象時(shí),可以傳0~3個(gè)參數(shù),傳了幾個(gè)參數(shù),就替換前面的幾個(gè)參數(shù),其余都使用默認(rèn)參數(shù)。
使用默認(rèn)參數(shù)的好處在于:調(diào)用構(gòu)造函數(shù)時(shí)就算沒有提供參數(shù)也不會(huì)出錯(cuò),且對(duì)每一個(gè)對(duì)象能有相同的初始化狀態(tài)。
不過,應(yīng)該在聲明構(gòu)造函數(shù)默認(rèn)值時(shí)指定默認(rèn)參數(shù)值,而不能只在定義構(gòu)造函數(shù)時(shí)指定默認(rèn)參數(shù)值。如果構(gòu)造函數(shù)中的參數(shù)全指定了默認(rèn)值,則在定義對(duì)象時(shí),可給一個(gè)實(shí)參或多個(gè)實(shí)參,也可不給實(shí)參。
一個(gè)類中如果定義了全是默認(rèn)參數(shù)的構(gòu)造函數(shù)后,就不能再定義重載構(gòu)造函數(shù)了。
假設(shè)Box類中定義了3個(gè)構(gòu)造函數(shù)
Box(int =10,int=3,int=5); Box(); Box(int,int);
若有以下定義語(yǔ)句,則會(huì)出現(xiàn)問題
Box box1; //是應(yīng)該調(diào)用第1個(gè)構(gòu)造函數(shù)還是應(yīng)該調(diào)用第2個(gè)構(gòu)造函數(shù) Box box2(13,18); //是應(yīng)該調(diào)用第2個(gè)構(gòu)造函數(shù)還是應(yīng)該調(diào)用第3個(gè)構(gòu)造函數(shù)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C語(yǔ)言用遞歸函數(shù)對(duì)素?cái)?shù)進(jìn)行判斷流程
素?cái)?shù)判斷是編程語(yǔ)言學(xué)習(xí)過程中一個(gè)老生常談的話題,而它的實(shí)現(xiàn)也有多種算法,包括經(jīng)典的試除法(以及試除法的幾種優(yōu)化),進(jìn)階的素?cái)?shù)表篩選法,埃拉托斯特尼篩法和歐拉篩法(以及它們的優(yōu)化)等。對(duì)以上算法感興趣的朋友們,不妨搜索“素?cái)?shù)判斷的N種境界”來學(xué)習(xí)了解2022-09-09
MongoDB?C?驅(qū)動(dòng)程序安裝(libmongoc)?和?BSON?庫(kù)(libbson)方法
這篇文章主要介紹了安裝?MongoDB?C?驅(qū)動(dòng)程序?(libmongoc)?和?BSON?庫(kù)?(libbson),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09
C語(yǔ)言實(shí)現(xiàn) 數(shù)據(jù)類型占多少字節(jié)指針占多少字節(jié)
這篇文章主要介紹了 C語(yǔ)言 數(shù)據(jù)類型占多少字節(jié)指針占多少字節(jié)的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
C語(yǔ)言通過深度優(yōu)先搜索來解電梯問題和N皇后問題的示例
深度優(yōu)先搜索即是對(duì)一個(gè)新發(fā)現(xiàn)的節(jié)點(diǎn)上如果還關(guān)聯(lián)未探測(cè)到的邊,就沿此邊探測(cè)下去,直到發(fā)現(xiàn)從原點(diǎn)可達(dá)的所有點(diǎn)為止,這里我們就來展示C語(yǔ)言通過深度優(yōu)先搜索來解電梯問題和N皇后問題的示例2016-06-06
關(guān)于C++中數(shù)據(jù)16進(jìn)制輸出的方法
本文主要介紹了關(guān)于C++中數(shù)據(jù)16進(jìn)制輸出的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
C++控制臺(tái)實(shí)現(xiàn)密碼管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++控制臺(tái)實(shí)現(xiàn)密碼管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
Qt音視頻開發(fā)之利用ffmpeg實(shí)現(xiàn)倍速播放
這篇文章主要為大家詳細(xì)介紹了在Qt音視頻開發(fā)中如何利用ffmpeg實(shí)現(xiàn)倍速播放功能(半倍速/2倍速/4倍速/8倍速),感興趣的小伙伴可以了解一下2022-11-11
C語(yǔ)言實(shí)現(xiàn)輸入兩個(gè)數(shù)字將其按從小到大輸出的方法
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)輸入兩個(gè)數(shù)字將其按從小到大輸出的方法,本文通過代碼講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
C語(yǔ)言如何求整數(shù)的位數(shù)及各位數(shù)字之和
這篇文章主要介紹了C語(yǔ)言如何求整數(shù)的位數(shù)及各位數(shù)字之和,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11

