亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

c++ 構造函數的初始化列表

2020-01-26 15:59:20
字體:
來源:轉載
供稿:網友

首先,運行下圖中的C++代碼,輸出是什么?

復制代碼 代碼如下:

class A
{
private:
 int n1;
 int n2;
public:
 A(): n2(0) , n1(n2 + 2)
 {
 }
 void Print()
 {
  cout<<"n1:"<<n1<<",n2:"<<n2<<endl;
 }
};
int main(void)
{
 A a;
 a.Print();
 return 0;
}

答案:
輸出n1是一個隨機的數字,n2為0。在C++中,成員變量的初始化順序與變量在類型中的聲明順序相同,而與它們在構造函數的初始化列表中的順序無關。因此在這道題中,會首先初始化n1,而初始n1的參數n2還沒有初始化,是一個隨機值,因此n1就是一個隨機值。初始化n2時,根據參數0對其初始化,故n2=0。

構造函數的初始化列表僅僅指定用于初始化成員的值,并不指定這些初始化執行的次序。成員初始化的次序就是定義成員的次序,第一個成員首先被初始化,然后是第二個,依次類推。也就是說,C++編譯器很容易得到構造函數的參數列表,獲取參數,然后根據成員變量的聲明順序初始化成員變量(這是因為,后聲明的變量有可能依賴先聲明的成員變量,因此要有先聲明先初始化,后聲明的后初始化)。

大家可能看到這里就會覺得,好麻煩啊,當類中的一個數據成員是根據其他數據成員而初始化的時候,初始化列表的次序不能跟成員變量的聲明次序不一致,否則會出現不可預料的錯誤。

的確是這樣的,所以有人就會想到,我干脆把初始化列表的那些操作都放到構造函數的函數體內對數據成員進行賦值操作就行了,的確這樣做是可以的,但是有時構造函數的初始化列表是必須的。

有些數據成員必須在構造函數初始化列表中進行初始化。對于這樣的成員,在構造函數體內對它們賦值是不起作用的。沒有默認構造函數的類類型的成員,以及const類型的成員變量和引用類型的成員變量,不管是哪種類型,都必須在構造函數初始化列表中進行初始化。
例如,下面的構造函數定義就是錯誤的:

復制代碼 代碼如下:

class A
{
private:
 int i;
 const int j;
 int &k;
public:
 A(int ii)
 {
  i = ii;
  j = ii;
  k = ii;
 }
};

記住,可以初始化 const 對象或引用類型的對象,但不能對它們賦值。在開始執行構造函數的函數體之前,要完成初始化,初始化 const 或引用類型的數據成員的唯一機會就是在構造函數的初始化列表中。
例如,下面的構造函數定義就是正確的:
復制代碼 代碼如下:

class A
{
private:
 int i;
 const int j;
 int &k;
public:
 A(int ii) : i(ii) , j(i) , k(ii)
 {
 }

 A() : j(0) , k(i)
 { }
};

int main(void)
{
 A a;
 return 0;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美久久一区二区| 亚洲一区二区三区xxx视频| 91精品免费久久久久久久久| 精品国产一区二区三区久久久| 精品国产欧美一区二区五十路| 91精品免费视频| 欧洲午夜精品久久久| 欧美激情视频一区| 欧美日韩一区二区免费视频| 欧美日韩免费在线观看| 亚洲剧情一区二区| 国产日韩中文字幕在线| 久久视频在线观看免费| 欧美日韩一区二区在线播放| 精品国产乱码久久久久久婷婷| 国产精品高清免费在线观看| 精品久久久国产| 欧美激情一二三| 欧美日韩精品在线观看| 中文字幕无线精品亚洲乱码一区| 777777777亚洲妇女| 91高清免费视频| 欧美男插女视频| 自拍偷拍亚洲一区| 色噜噜狠狠色综合网图区| 国产中文日韩欧美| 国产亚洲a∨片在线观看| 8050国产精品久久久久久| 欧美精品videossex88| 九九视频直播综合网| 国产欧美精品久久久| 欧洲日本亚洲国产区| 国产午夜一区二区| 欧美精品日韩三级| 国产一区二区美女视频| 日韩中文字幕欧美| 中文字幕久精品免费视频| 日韩成人av网址| 亚洲午夜av久久乱码| 日韩欧美极品在线观看| 日韩欧美在线视频观看| 国产精品亚洲片夜色在线| 91精品视频免费| 亚洲最新av网址| 成人午夜两性视频| 国产精品爽爽ⅴa在线观看| 国产深夜精品福利| 视频在线观看一区二区| 国内精品一区二区三区四区| 欧美激情视频免费观看| 亚洲日韩中文字幕在线播放| 国产欧美日韩视频| 日韩久久免费视频| 1769国内精品视频在线播放| 欧美精品做受xxx性少妇| 日韩美女视频在线观看| 97视频在线观看视频免费视频| 国产精品高潮呻吟久久av无限| 欧美精品一区三区| 日韩av高清不卡| 国产成人精品亚洲精品| 久久精品欧美视频| 国产精品久久久久久久av电影| 日本亚洲欧洲色| 国产在线精品自拍| 亚洲国产欧美一区二区三区同亚洲| 国产日韩精品在线观看| 精品网站999www| 欧美国产日本在线| 亚洲精品资源美女情侣酒店| 97香蕉超级碰碰久久免费软件| 国产婷婷成人久久av免费高清| 中文字幕日韩欧美| 中文字幕国产精品| 这里只有精品久久| 美女扒开尿口让男人操亚洲视频网站| 成人日韩在线电影| 2019国产精品自在线拍国产不卡| 国产69精品久久久久9999| 伊人久久久久久久久久| 在线日韩日本国产亚洲| 成人免费网站在线| 国产精品爽爽爽| 精品国产欧美一区二区三区成人| 日韩中文第一页| 欧美日韩性视频在线| 日韩中文字幕在线看| 国产视频精品免费播放| 日韩av最新在线观看| 欧美日韩亚洲精品一区二区三区| 亚洲自拍偷拍一区| 亚洲第一中文字幕在线观看| 91性高湖久久久久久久久_久久99| 亚洲精品久久久久久下一站| 国产亚洲欧美一区| 亚洲三级 欧美三级| 日日摸夜夜添一区| 久久久久免费视频| 欧美成在线观看| 欧美精品午夜视频| 日韩欧美在线国产| 国产精选久久久久久| 精品国产依人香蕉在线精品| 日韩风俗一区 二区| 国产精品高清在线| 亚洲国产美女久久久久| 欧美精品videosex极品1| 久久天堂av综合合色| 色妞一区二区三区| 成人精品一区二区三区电影黑人| 91精品国产高清久久久久久| 亚洲欧美国产一本综合首页| 成人免费激情视频| 亲爱的老师9免费观看全集电视剧| 国产亚洲视频在线观看| 亚洲精品久久久久久久久久久久| 一区二区三区动漫| 国产精品久久久久av免费| 黑人巨大精品欧美一区二区三区| 久久精品夜夜夜夜夜久久| 国产精品99久久99久久久二8| 亚洲一区二区三区乱码aⅴ| 亚洲毛片在线观看.| 538国产精品视频一区二区| 国产精品亚发布| 亚洲大胆美女视频| 黄色一区二区在线观看| 欧美日韩成人在线观看| www.久久久久| 亚洲一区二区三区视频播放| 欧洲一区二区视频| 日韩亚洲欧美中文高清在线| 亚洲黄在线观看| 久久影院在线观看| 久久久精品久久久| 亚洲色图色老头| 久久久久国产精品免费网站| 亚洲精品中文字幕女同| 欧美另类xxx| 国产精品极品美女在线观看免费| 伊人伊人伊人久久| 久久精品视频中文字幕| 播播国产欧美激情| 国产精品精品视频| 久久久999精品| 国产精品扒开腿做爽爽爽的视频| 久久全球大尺度高清视频| 欧美国产日本高清在线| 亚洲性生活视频在线观看| 国产日韩在线一区| 亚洲精品中文字幕有码专区| 色多多国产成人永久免费网站| 亚洲成人a级网| 日av在线播放中文不卡| 亚洲男人天堂手机在线| 在线成人激情黄色| 欧美日韩在线视频一区| 国产伦精品一区二区三区精品视频| 亚洲一区二区三区视频| 欧美在线激情网| 欧美国产精品人人做人人爱| 亚洲日韩第一页| 久久久亚洲天堂| 久久亚洲成人精品|