日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

C++初始化列表:探索多種初始化方式

來源: 責編: 時間:2023-11-13 09:07:57 341觀看
導讀C++中的初始化列表是一種方便且強大的工具,用于在創建對象時初始化成員變量。初始化列表在C++中廣泛應用于各種類型的對象,包括數據成員、靜態成員、常量成員等。初始化列表的主要優勢在于,它允許程序員在對象創建時指定

C++中的初始化列表是一種方便且強大的工具,用于在創建對象時初始化成員變量。初始化列表在C++中廣泛應用于各種類型的對象,包括數據成員、靜態成員、常量成員等。初始化列表的主要優勢在于,它允許程序員在對象創建時指定初始值,而不是在構造函數中。這可以提高效率,并減少因多次構造而產生的開銷。ZdH28資訊網——每日最新資訊28at.com

ZdH28資訊網——每日最新資訊28at.com

以下是一些常見的初始化方式:ZdH28資訊網——每日最新資訊28at.com

直接賦值

這是最簡單的初始化方式,直接在類定義中為成員變量賦值。例如:ZdH28資訊網——每日最新資訊28at.com

class MyClass {      int a = 10;  // 直接賦值初始化  };

構造函數初始化列表

這是使用構造函數初始化列表來初始化成員變量。這種方式可以保證成員變量在構造函數體執行之前被正確初始化。例如:ZdH28資訊網——每日最新資訊28at.com

class MyClass {      int a;  public:      MyClass(int b) : a(b) {}  // 使用構造函數初始化列表初始化a  };

委托構造函數初始化列表

這是一種更高級的初始化方式,使用委托構造函數來初始化成員變量。例如:ZdH28資訊網——每日最新資訊28at.com

class MyClass {      int a;  public:      MyClass(int b) : MyClass(b) {}  // 委托構造函數初始化列表初始化a      MyClass(int b) : a(b) {}  // 在委托構造函數中初始化a  };

默認構造函數初始化列表

這是使用默認構造函數初始化列表來初始化成員變量。這種方式適用于沒有顯式定義構造函數的情況。例如:ZdH28資訊網——每日最新資訊28at.com

class MyClass {      int a;  public:      MyClass() : a(0) {}  // 使用默認構造函數初始化列表初始化a  };

命名初始化列表

這是使用命名初始化列表來初始化成員變量。這種方式可以提高代碼可讀性。例如:ZdH28資訊網——每日最新資訊28at.com

class MyClass {      int a;  public:      MyClass : a(10) {}  // 使用命名初始化列表初始化a  };

初始化列表的順序和作用域

在C++中,初始化列表的順序并不影響執行順序,而是按照代碼中聲明的順序執行。同時,每個類型只會被初始化為一次,即使它在多個初始化列表中出現。例如:ZdH28資訊網——每日最新資訊28at.com

class MyClass {      int a;      int b;  public:      MyClass() : a(1), b(2), a(3) {}  // a會被初始化為3,b會被初始化為2,但a不會被初始化為1,因為每個類型只會被初始化為一次。  };

初始化常量成員

在C++中,常量成員一旦被初始化就不能更改。這通常在類定義中完成。例如:ZdH28資訊網——每日最新資訊28at.com

class MyClass {      const int a = 10;  // 初始化常量成員a  };

使用列表初始化

列表初始化是一種更為直觀且類型安全的初始化方式,它允許我們明確指定每個成員的初始值。例如:ZdH28資訊網——每日最新資訊28at.com

class MyClass {      int a;  public:      MyClass(int b) : a{b} {}  // 使用列表初始化初始化a  };

初始化引用成員

引用成員一旦被初始化就不能更改,這通常在類定義中完成。例如:ZdH28資訊網——每日最新資訊28at.com

class MyClass {      int& a = *new int(10);  // 初始化引用成員a  };

默認的構造函數和析構函數

當我們在類中沒有定義構造函數和析構函數時,編譯器會自動為我們生成默認的構造函數和析構函數。例如:ZdH28資訊網——每日最新資訊28at.com

class MyClass {      int a;  public:      MyClass() = default;  // 定義默認構造函數      ~MyClass() = default;  // 定義默認析構函數  };

需要注意的是,默認構造函數和析構函數不是我們可以在類定義中指定的唯一類型的構造函數和析構函數。我們還可以顯式地定義其他類型的構造函數和析構函數,包括拷貝構造函數、移動構造函數、拷貝析構函數、移動析構函數等。ZdH28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-22493-0.htmlC++初始化列表:探索多種初始化方式

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: C 語言函數宏封裝妙招

下一篇: Java服務端程序“假死”怎么辦?

標簽:
  • 熱門焦點
  • 官方承諾:K60至尊版將會首批升級MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版將會搭載天璣9200+處理器和獨顯芯片X7的同時,Redmi給出了官方承諾,K60至尊重大更新首批升級,會首批推送MIUI 15。也就是說雖然
  • Mate60手機殼曝光 致敬自己的經典設計

    8月3日消息,今天下午博主數碼閑聊站帶來了華為Mate60的第三方手機殼圖,可以讓我們在真機發布之前看看這款華為全新旗艦的大致輪廓。從曝光的圖片看,Mate 60背后攝像頭面積依然
  • 小米平板5 Pro 12.4簡評:多專多能 兼顧影音娛樂的大屏利器

    疫情帶來了網課,網課盤活了安卓平板,安卓平板市場雖然中途停滯了幾年,但好的一點就是停滯的這幾年行業又有了新的發展方向,例如超窄邊框、高刷新率、多攝鏡頭組合等,這就讓安卓
  • 6月iOS設備性能榜:M2穩居榜首 A系列只能等一手3nm來救

    沒有新品發布,自然iOS設備性能榜的上榜設備就沒有什么更替,僅僅只有跑分變化而產生的排名變動,畢竟蘋果新品的發布節奏就是這樣的,一年下來也就幾個移動端新品,不會像安卓廠商,一
  • Rust中的高吞吐量流處理

    作者 | Noz編譯 | 王瑞平本篇文章主要介紹了Rust中流處理的概念、方法和優化。作者不僅介紹了流處理的基本概念以及Rust中常用的流處理庫,還使用這些庫實現了一個流處理程序
  • 自律,給不了Keep自由!

    來源 | 互聯網品牌官作者 | 李大為編排 | 又耳 審核 | 谷曉輝自律能不能給用戶自由暫時不好說,但大概率不能給Keep自由。近日,全球最大的在線健身平臺Keep正式登陸港交所,努力
  • 大廠卷向扁平化

    來源:新熵作者丨南枝 編輯丨月見大廠職級不香了。俗話說,兵無常勢,水無常形,互聯網企業調整職級體系并不稀奇。7月13日,淘寶天貓集團啟動了近年來最大的人力制度改革,目前已形成一
  • 聯想YOGA 16s 2022筆記本將要推出,屏幕支持觸控功能

    聯想此前宣布,將于11月2日19:30召開聯想秋季輕薄新品發布會,推出聯想 YOGA 16s 2022 筆記本等新品。官方稱,YOGA 16s 2022 筆記本將搭載 16 英寸屏幕,并且是一
  • AI藝術欣賞體驗會在上海梅賽德斯奔馳中心音樂俱樂部上演

    光影交錯的鏡像世界,虛實幻化的視覺奇觀,虛擬偶像與真人共同主持,這些場景都出現在2019世界人工智能大會的舞臺上。8月29日至31日,“AI藝術欣賞體驗會”在上海
Top 主站蜘蛛池模板: 延寿县| 西乡县| 阜宁县| 延寿县| 永春县| 溧水县| 互助| 卓尼县| 澳门| 洛扎县| 肃北| 汕尾市| 西丰县| 香格里拉县| 仙居县| 福贡县| 镇雄县| 林口县| 茌平县| 筠连县| 民丰县| 喀喇沁旗| 蚌埠市| 五原县| 昔阳县| 崇礼县| 连城县| 句容市| 沙河市| 峨边| 龙州县| 高青县| 江城| 龙口市| 博乐市| 滁州市| 班戈县| 正蓝旗| 营口市| 毕节市| 鄂尔多斯市|