日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++之带有默认参数值的构造函数

發(fā)布時間:2024/8/23 c/c++ 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++之带有默认参数值的构造函数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在一個類中 ,如果程序員沒有寫,任何一個構(gòu)造函數(shù),則編譯器將為該類提供一個默認的構(gòu)造函數(shù),如果程序員對類的構(gòu)造函數(shù)進行了重載,則編譯器將不提供默構(gòu)造函數(shù),這里需要手動書寫一個無參的構(gòu)造函數(shù),

無參的構(gòu)造函數(shù),也就是默認構(gòu)造函數(shù),

默認構(gòu)造函數(shù)分為兩種:

1、不含有參數(shù)的默認構(gòu)造函數(shù)

2、帶有默認參數(shù)值的構(gòu)造函數(shù)

在這里主要說的是帶有默認參數(shù)值的構(gòu)造函數(shù)的使用及注意事項:

定義方法示例:

class?Circle{

public:

? ? Circle(int?a=1,int?b=2,int?c=3){//本構(gòu)造函數(shù)是帶默認值的默認構(gòu)造函數(shù)

? ? ? ??x=a;

? ? ? ??y=b;

? ? ? ??z=c;

? ? }

private:

? ??int?x;

? ??int?y;

? ??int?z;

};

一個類中,一旦定義了帶有默認值的構(gòu)造函數(shù),便可以直接使用,使用方式主要有以下幾種:

在這里仍使用上面的例子,進行演示:

Circle c1;//調(diào)用默認構(gòu)造函數(shù),此時,類中的私有屬性,分別初始化為x=1、y=2、z=3;

Circle c2(5);//調(diào)用默認構(gòu)造函數(shù),此時,類中私有屬性,分別初始化為x=5、y=2、z=3;

Circle c2(5,6);//調(diào)用默認構(gòu)造函數(shù),此時,類中私有屬性,分別初始化為x=5、y=6、z=3;

Circle c2(5,6,7);//調(diào)用默認構(gòu)造函數(shù),此時,類中私有屬性,分別初始化為x=5、y=6、z=7;

當函數(shù)中定義了帶有默認值的構(gòu)造函數(shù),在進行構(gòu)造函數(shù)重載時,就不能任意的進行重載,即其它構(gòu)造函數(shù)的參數(shù),與之對用的位置,不能與帶有默認值的構(gòu)造函數(shù)相同。如果不明白,可以看下面這個例子:

class?Circle{

public:

? ? Circle(int?a=1,int?b=2,int?c=3){//本函數(shù)是帶默認值的默認構(gòu)造函數(shù)

? ? ? ??x=a;

? ? ? ??y=b;

? ? ? ??z=c;

? ? }

//? ? Circle(int a){//此種定義,會導(dǎo)致,構(gòu)造函數(shù)?在調(diào)用時,編譯器不知該如何調(diào)用哪個構(gòu)造函數(shù),由于帶有默認參數(shù)值的默認構(gòu)造函數(shù)的出現(xiàn)

//? ? ? ? x=a;

//? ? ? ? y=4;

//? ? ? ? z=5;

//? ? }

//? ? Circle(float a){//此種定義,會導(dǎo)致,構(gòu)造函數(shù)?在調(diào)用時,編譯器不知該如何調(diào)用哪個構(gòu)造函數(shù),由于帶有默認參數(shù)值的默認構(gòu)造函數(shù)的出現(xiàn)

//? ? ? ? x=(int)a;

//? ? ? ? y=4;

//? ? ? ? z=5;

//? ? }

public:

? ??void?print(){

? ? ? ??std::cout<<"x="<<x<<"y="<<y<<"z="<<z<<endl;

? ? }

private:

? ??int?x;

? ??int?y;

? ??int?z;

?? ?

};

因此,當進行構(gòu)造函數(shù)重載時,要特別注意

本文到此結(jié)束,

總結(jié)

以上是生活随笔為你收集整理的C++之带有默认参数值的构造函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。