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

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

關于C++類的成員初始化列表的相關問題

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

在以下四中情況下,要想讓程序順利編譯,必須使用成員初始化列表(member initialization list):

1,初始化一個引用成員(reference member);

2,初始化一個常量對象(const member);

3,調用一個基類的構造函數,且該基類的構造函數有一組參數;

4,調用一個成員類(member class)的構造函數,且該構造函數有一組參數

這四種情況程序可以正常編譯,但是效率有所欠缺(下面會具體說到)。

class Word{String _name;int _cnt;public:Word() {_name = 0;_cnt = 0;}};

上面這個程序的實現機制是:Word類的構造函數會先生成一個String類的臨時對象(注意,_name是String類的對象),然后對該臨時對象初始化。

然后通過賦值運算符將臨時對象賦給_name,最后析構該臨時對象。

以下是構造函數的內部擴張結果,c++偽代碼:

Word::Word(){_name.String::String();  //調用String類的默認構造函數(default constructor)String temp = String(0); //產生類的臨時對象 并初始化_name.String::operator = (temp); //通過賦值運算符將臨時對象的值(深)拷貝給 _nametemp.String::~String();   //調用String的析構函數_cnt = 0;}

以上的代碼效率并不高,因為中間需要調用默認構造函數和析構函數生成和銷毀一個臨時對象,以下是一個更有效率的實現方法:

Word::Word : _name (0)  //_name直接調用String類的構造函數對其賦值{_cnt = 0;}

它會被構造函數擴張成以下的形式(c++偽代碼)

Word::Word(){_name.Sting::String(0);  //調用String (int) 構造函數_cnt = 0;}

成員初始化列表并不是一組函數調用,編譯器一一操作初始化列表,以適當的順序在構造函數中插入初始化的操作,并且是在程序員顯式的寫入代碼之前進行。

列表的中的項目次序是由類中的成員聲明次序決定的,不是由初始化列表中的排列順序決定。“初始化次序”和“初始化列表中的項目排列順序”的錯亂會帶來意想不到的錯誤:

class X {  int i;  int j;public:  X (int value) : j (value), i (j) {}....}; 

以上代碼編寫者的本意是要把j的初值設置為 value, 再把 i 的初值設置為 j 。然而,由于聲明次序 i 在 j 之前,初始化列表中 i(j) 實際上比 j(value)更早執行,

這就帶來了意想不到的錯誤。正確的寫法應該是:

 class X {  int i;  int j;public:  X (int value) : j (value)    // j (value) 此處調用構造函數賦初值 { i = j; }};

雖然這種寫法仍然是 i 聲明在 j 之前,但是并不會發生錯誤,因為初始化列表中的項目被插入到構造函數中不會再保持原來的聲明次序,也就是說初始化列表被插入到構造函數中初始化列表中的項目順序優先級高于代碼編寫者顯式聲明的順序。

以上這篇關于C++類的成員初始化列表的相關問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品久久久一区二区| 日韩电视剧在线观看免费网站| 久久97久久97精品免视看| 国产成人aa精品一区在线播放| 中文字幕欧美日韩在线| 中文字幕日韩欧美| 亚洲美女黄色片| 国产欧美日韩专区发布| 九九综合九九综合| 久久人体大胆视频| 欧美成人免费视频| 91爱爱小视频k| 国产欧美中文字幕| 久久噜噜噜精品国产亚洲综合| 欧美一区二三区| 91av在线网站| 97婷婷涩涩精品一区| 日韩亚洲欧美中文在线| 少妇高潮久久77777| 日韩专区在线观看| 一区二区三区国产在线观看| 国产精品视频专区| 亚洲精品久久7777777| 粉嫩av一区二区三区免费野| 久久好看免费视频| 久久综合五月天| 久久国产精品影视| 久久视频国产精品免费视频在线| 在线精品高清中文字幕| 亚洲精品资源美女情侣酒店| 成人a免费视频| 欧美激情精品久久久久久大尺度| 亚洲影影院av| 国产成人久久久精品一区| 久久成年人免费电影| 91精品国产91久久久久久不卡| 欧美在线视频免费播放| 国产精品旅馆在线| 欧美性猛交xxxx富婆弯腰| 一本色道久久综合亚洲精品小说| 亚洲免费电影一区| 国产日韩欧美91| 国产精品亚洲综合天堂夜夜| 欧美日韩成人在线观看| 精品美女永久免费视频| 精品亚洲一区二区三区| 亚洲福利视频久久| 亚洲日本成人网| 欧美精品成人91久久久久久久| 精品久久久久久久久久ntr影视| 国产婷婷97碰碰久久人人蜜臀| 欧美中文字幕精品| 美女久久久久久久久久久| 91av视频在线免费观看| 欧美麻豆久久久久久中文| 国产99视频精品免视看7| 国产精自产拍久久久久久蜜| 成人激情视频在线播放| 亚洲自拍av在线| 成人性生交大片免费看小说| 亚洲精品资源在线| 国产精品丝袜白浆摸在线| 在线观看日韩视频| 国产综合香蕉五月婷在线| 中文字幕av一区二区三区谷原希美| 国产美女久久精品香蕉69| 亚洲成人av在线播放| 69av成年福利视频| 中文字幕国产日韩| 久久免费视频在线| 亚洲色图欧美制服丝袜另类第一页| 91九色视频在线| 国产一区二区在线播放| 日韩欧美第一页| 日本欧美爱爱爱| 欧美激情aaaa| 精品日本美女福利在线观看| 粗暴蹂躏中文一区二区三区| 精品露脸国产偷人在视频| 亚洲欧美日韩久久久久久| 奇门遁甲1982国语版免费观看高清| 日本精品中文字幕| 国产精品一区二区久久久久| 精品丝袜一区二区三区| 亚洲精品videossex少妇| 亚洲成色777777在线观看影院| 国产精品免费久久久久久| 亚洲天堂免费视频| 日韩在线观看高清| 国产精品视频公开费视频| 亚洲成成品网站| 日本欧美一二三区| 久久综合伊人77777尤物| 亚洲第一天堂av| 日韩av片免费在线观看| 精品亚洲精品福利线在观看| 人妖精品videosex性欧美| 91免费国产网站| 色妞在线综合亚洲欧美| 国产精品偷伦视频免费观看国产| 国产美女直播视频一区| 精品久久久999| 欧美性色视频在线| 毛片精品免费在线观看| 亚洲国产天堂久久国产91| 国产一区二区三区在线看| 九九九热精品免费视频观看网站| 欧美成人激情图片网| 2018国产精品视频| 国产精品自拍偷拍| 亚洲女同性videos| 亚洲一区二区三区在线免费观看| 51久久精品夜色国产麻豆| 欧美在线一区二区视频| 91久久国产精品91久久性色| 欧美极品少妇与黑人| 国产成人啪精品视频免费网| 久久视频免费观看| 91成人福利在线| 亚洲男人天堂视频| 国产成人亚洲综合| 亚洲第一色中文字幕| 国产91精品在线播放| 日本高清不卡的在线| 国产激情综合五月久久| 成人在线播放av| 欧美老女人bb| 中文字幕少妇一区二区三区| 国产精品专区第二| 高清欧美性猛交xxxx| 色综合视频网站| 国产乱肥老妇国产一区二| 91av成人在线| 亚洲国产又黄又爽女人高潮的| 97久久精品视频| 日韩精品免费综合视频在线播放| 久久精品国产一区| 福利精品视频在线| 成人欧美一区二区三区黑人孕妇| 欧美中文在线观看国产| 国产亚洲欧美视频| 日韩成人激情视频| 欧美精品videosex性欧美| 国产高清视频一区三区| 久久精品色欧美aⅴ一区二区| 欧美极品xxxx| 久热精品视频在线观看一区| 亚洲欧美一区二区三区情侣bbw| 精品日韩美女的视频高清| 一本大道香蕉久在线播放29| 久久国产精彩视频| 国产经典一区二区| 亚洲精品小视频在线观看| 欧美精品在线观看91| 欧美一区三区三区高中清蜜桃| 97涩涩爰在线观看亚洲| 亚洲2020天天堂在线观看| 国产精品吹潮在线观看| 欧美大尺度电影在线观看| 国产精品96久久久久久又黄又硬| 欧美一级大片在线观看| 日韩免费高清在线观看| 久久婷婷国产麻豆91天堂| 日韩av电影在线免费播放|