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

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

C++初始化函數列表詳細解析

2020-02-24 14:24:54
字體:
來源:轉載
供稿:網友

C++初始化函數列表和其他的函數初始化有所不同,這也讓減少賦值構造函數的調用,有利于性能的提高,那就跟隨著武林技術頻道小編一起來認識學習C++初始化函數列表詳細解析吧!

在以下三種情況下需要使用初始化成員列表:

一,需要初始化的數據成員是對象的情況;

二,需要初始化const修飾的類成員;

三,需要初始化引用成員數據;

原因:
C++可以定義引用類型的成員變量,引用類型的成員變量必須在構造函數的初始化列表中進行初始化。對于類成員是const修飾,或是引用類型的情況,是不允許賦值操作的,(顯然嘛,const就是防止被錯誤賦值的,引用類型必須定義賦值在一起),因此只能用初始化列表對齊進行初始化。成員類型是沒有默認構造函數的類。若沒有提供顯示初始化式,則編譯器隱式使用成員類型的默認構造函數,若類沒有默認構造函數,則編譯器嘗試使用默認構造函數將會失敗。(也就是這三種情況必須使用初始化列表)

我們定義一個如下的Person類:

?

class Person {

?

public:

  Person() { } //default constructor function

  Person(string name, string phone, string addr)

  {

    m_name = name; //想采用賦值初始化數據成員

    m_phone = phone;

    m_addr = addr;

  }

private:

  const string m_name;

  const string m_phone;

  const string m_addr;

};


編譯后發現這個類的第二個帶參數的構造函數是錯誤的。我們創建一個Person對象:

?

Person p("marcky", "13233232", "cqupt"); //調用帶參數的構造函數創建一個Person對象 創建對象的過程分為了兩步:

一、從內存中分配實際的空間給對象p,其三個字符串對象的數據成員是調用的默認構造函數初始化為空。也就說,此時為止,對象p的三個數據成員都是一個空的字符串。

二、執行調用的構造函數的函數體語句,完成對數據成員的賦值,以此達到我們期望的創建一個指定Person對象,而不是空對象。

從上面的第二步就可以看到,我們在對三個const對象進行賦值操作,這顯然是不允許的操作,因此利用這個構造函數創建Person將以失敗告終。要想成功的創建一個特定的Person對象,我們需要構造函數初始化列表:

Person(string name, string phone, string addr)
:m_name(name), m_phone(phone), m_addr(addr){ } //冒號開始定義初始化列表 使用初始化列表創建對象的構造函數同樣是通過上述的兩個步驟來完成的,不同之處在于創建對象的數據成員時使用的不是默認構造函數,而是根據指定參數調用了相應的構造函數,以此創建特定的對象,而不是空對象。這樣一來,對象的數據成員的特定值在創建對象的時候就被賦予了相應的成員,而不是在創建對象完成之后再通過賦值語句去修改數據成員,因此利用構造函數初始化列表就可以成功的創建具有const數據成員的對對象了。

沒有默認構造函數的類類型成員,如果不在初始化列表中初始化的話,那么創建該對象的時候,由于沒有指定相應的“實參”,編譯器就會去調用默認構造函數來創建對象,必然會以失敗而告終。

看完武林技術頻道小編為各位朋友們整理的C++初始化函數列表詳細解析之后,各位朋友們是不是有了全新的認識了吧,希望上面的內容可以幫助到大家。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人综合久久| 亚洲综合在线中文字幕| 亚洲天堂av图片| 亚洲欧洲在线视频| 久久夜色撩人精品| 亚洲欧美999| 亚洲美女久久久| 久久中文精品视频| 午夜精品一区二区三区在线视| 欧美精品久久久久久久免费观看| 日本久久久久亚洲中字幕| 成人精品视频99在线观看免费| 亚洲国产成人在线视频| 91精品中国老女人| 精品亚洲国产成av人片传媒| 一区二区三区视频免费| 日韩禁在线播放| 国产精品免费一区| 国内精品久久久久久久| 日韩精品免费在线观看| 亚洲精品小视频| 亚洲精品欧美一区二区三区| 91久久精品久久国产性色也91| 欧美一级免费看| 亚洲欧美在线一区二区| 国产精品入口夜色视频大尺度| 91欧美精品成人综合在线观看| 欧美在线一区二区三区四| 91综合免费在线| 亚洲激情视频在线播放| 精品一区二区三区三区| 国产精品96久久久久久又黄又硬| 68精品久久久久久欧美| 精品国产拍在线观看| 国产第一区电影| 欧美多人爱爱视频网站| 亚洲最大的成人网| 91av福利视频| 亚洲天堂av综合网| 青青草99啪国产免费| 欧美综合一区第一页| 欧美日韩在线观看视频| 欧美夜福利tv在线| 欧美激情视频免费观看| 国产精品免费一区| 久久夜精品香蕉| 欧美日韩成人在线视频| 久久亚洲欧美日韩精品专区| 亚洲精品久久久久久久久久久久久| 狠狠躁夜夜躁人人爽超碰91| 日韩亚洲欧美中文在线| 91香蕉亚洲精品| 性欧美亚洲xxxx乳在线观看| 九九热视频这里只有精品| 国产一区二区免费| 中文字幕精品一区二区精品| 久久精品成人欧美大片| 欧美重口另类videos人妖| 97视频在线观看免费高清完整版在线观看| 亚洲欧美另类中文字幕| 国产日韩欧美中文在线播放| 日韩电影免费观看在线观看| 91成人在线视频| 欧美激情一区二区三区在线视频观看| 91久久久精品| 91沈先生在线观看| 国产视频丨精品|在线观看| 欧美一级片久久久久久久| 青青精品视频播放| 国产精品吊钟奶在线| 亚州精品天堂中文字幕| 国产欧美一区二区三区久久人妖| 久久久久久久久久久人体| 欧美日韩国产在线| 亚洲福利在线视频| 亚洲a级在线观看| 成人观看高清在线观看免费| 高清一区二区三区日本久| 久久久久久久久久国产精品| 亚洲国产精品va在线观看黑人| 久久视频在线视频| 久久久天堂国产精品女人| 欧美放荡办公室videos4k| 日日骚av一区| 久久久久久久一区二区三区| 亚洲精品videossex少妇| 国外成人在线直播| 国产精品久久久久久久久久三级| 国产在线a不卡| 久久久久久国产精品久久| 91成人性视频| 亚洲精品suv精品一区二区| 国产一区二区丝袜| 亚洲精品美女在线观看播放| 97视频在线观看成人| 91精品国产777在线观看| 日韩毛片在线观看| 亚洲精品久久久久国产| 亚洲国产精品999| 欧美大成色www永久网站婷| 欧美亚洲国产视频小说| 91久久综合亚洲鲁鲁五月天| 91精品国产高清| 91高清在线免费观看| 日韩在线观看网址| 欧美激情视频三区| 国产精品欧美日韩| 国产精品夜间视频香蕉| 日本乱人伦a精品| 国产黑人绿帽在线第一区| 欧美一级大片在线免费观看| 久久久999精品免费| 日韩黄色高清视频| 国产精品视频1区| 2020久久国产精品| 欧美小视频在线| 91免费电影网站| 国产精品吹潮在线观看| 亚洲欧美在线看| 欧美精品久久久久久久久久| 亚洲一区999| 久热精品在线视频| 欧美日韩在线看| 国产专区精品视频| 日韩在线观看免费高清| 国产综合在线视频| 欧美富婆性猛交| 久久亚洲精品一区| 欧美片一区二区三区| 成人乱色短篇合集| 91超碰中文字幕久久精品| 日本一区二区在线免费播放| 久久97精品久久久久久久不卡| 日本高清+成人网在线观看| 久久电影一区二区| 在线播放日韩专区| 亚洲国产精品字幕| 国产69精品久久久久9999| 国产亚洲成精品久久| 欧美xxxx18国产| 亚洲欧美三级伦理| 美女精品久久久| 国产日产欧美a一级在线| 亚洲一区国产精品| 高潮白浆女日韩av免费看| 精品视频—区二区三区免费| 91豆花精品一区| 俺去亚洲欧洲欧美日韩| 国产精品高潮在线| 欧美性视频在线| 亚洲国产精品推荐| 国产日韩欧美在线播放| 国产在线视频不卡| 中文字幕亚洲欧美在线| 最近中文字幕2019免费| 久久成人精品电影| 久久精品久久久久久| 精品国产成人在线| 91精品国产高清自在线| 亚洲电影第1页| 亚洲aⅴ男人的天堂在线观看| 日韩女优人人人人射在线视频| 91精品久久久久久久久中文字幕| 国产在线精品播放|