雷火电竞-中国电竞赛事及体育赛事平台

歡迎來(lái)到入門教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

C++中構(gòu)造函數(shù)的參數(shù)缺省的詳解

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊:

C++中構(gòu)造函數(shù)的參數(shù)缺省的詳解

前言:

構(gòu)造函數(shù)中參數(shù)的值既可以通過(guò)實(shí)參傳遞,也可以指定為某些默認(rèn)值,即如果用戶不指定實(shí)參值,編譯系統(tǒng)就使形參取默認(rèn)值。在構(gòu)造函數(shù)中也可以采用這樣的方法來(lái)實(shí)現(xiàn)初始化。

#include <iostream>
using namespace std;
class A
{
  public :
  A(int aa=0,int bb=00); //在聲明構(gòu)造函數(shù)時(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ù)是方便而有效的,它提供了建立對(duì)象時(shí)的多種選擇,它的作用相當(dāng)于好幾個(gè)重載的構(gòu)造函數(shù)。

它的好處是: 即使在調(diào)用構(gòu)造函數(shù)時(shí)沒(méi)有提供實(shí)參值,不僅不會(huì)出錯(cuò),而且還確保按照默認(rèn)的參數(shù)值對(duì)對(duì)象進(jìn)行初始化。尤其在希望對(duì)每一個(gè)對(duì)象都有同樣的初始化狀況時(shí)用這種方法更為方便。

關(guān)于構(gòu)造函數(shù)默認(rèn)值的幾點(diǎn)說(shuō)明:

  1. 應(yīng)該在聲明構(gòu)造函數(shù)時(shí)指定默認(rèn)值,而不能只在定義構(gòu)造函數(shù)時(shí)指定默認(rèn)值。
  2. 程序第5行在聲明構(gòu)造函數(shù)時(shí),形參名可以省略。
  3. 如果構(gòu)造函數(shù)的全部參數(shù)都指定了默認(rèn)值,則在定義對(duì)象時(shí)可以給一個(gè)或幾個(gè)實(shí)參,也可以不給出實(shí)參。
  4. 在一個(gè)類中定義了全部是默認(rèn)參數(shù)的構(gòu)造函數(shù)后,不能再定義重載構(gòu)造函數(shù)。

如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

上一篇:C++實(shí)現(xiàn)洗牌發(fā)牌排序功能的示例代碼

欄    目:C語(yǔ)言

下一篇:C++ set的使用方法詳解

本文標(biāo)題:C++中構(gòu)造函數(shù)的參數(shù)缺省的詳解

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/1083.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有