自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

EasyC++,成員初始化列表

開(kāi)發(fā) 后端
除了可以使用構(gòu)造函數(shù)對(duì)類成員進(jìn)行初始化之外,C++還提供了另外一種初始化的方法,叫做成員初始化列表。

 [[442028]]

成員初始化列表

除了可以使用構(gòu)造函數(shù)對(duì)類成員進(jìn)行初始化之外,C++還提供了另外一種初始化的方法,叫做成員初始化列表。

我們假設(shè)Classy是一個(gè)類,而mem1,mem2和mem3都是這個(gè)類的數(shù)據(jù)成員,那么類構(gòu)造函數(shù)可以寫成:

  1. Classy::Classy(int n, int m): mem1(n), mem2(0), mem3(n*m+2) { 
  2.     ... 
  3. }; 

上述代碼將mem1初始化為n,將mem2初始化為了0,mem3初始化成了n*m+2。這些初始化工作是對(duì)象創(chuàng)建是完成的,并且在執(zhí)行花括號(hào)中的內(nèi)容之前。

有這么幾點(diǎn)需要注意:

  • 這種格式只能用于構(gòu)造函數(shù)
  • 必須用這種格式初始化非靜態(tài)const數(shù)據(jù)成員(C++11之前)
  • 必須用這種格式初始化引用數(shù)據(jù)成員

數(shù)據(jù)成員被初始化的順序和它們?cè)陬愔卸x的順序相同,和初始化列表中的排列順序無(wú)關(guān)。

C++11的類內(nèi)初始化

C++11當(dāng)中允許我們直接對(duì)成員變量進(jìn)行賦值:

  1. class Classy { 
  2.     int mem1 = 10; 
  3.     const int mem2 = 20; 
  4. }; 

這和在構(gòu)造函數(shù)當(dāng)中使用成員初始化列表等價(jià):

  1. Classy::Classy() : mem1(0), mem2(20) {...} 

我們?cè)陬惍?dāng)中直接初始化之后,我們也可以在成員初始化列表當(dāng)中進(jìn)行覆蓋:

  1. Classy::Classy(int n) : mem1(n) {...} 

在這種情況下,mem1的值會(huì)被替換成n。

責(zé)任編輯:武曉燕 來(lái)源: Coder梁
相關(guān)推薦

2021-12-12 18:13:54

C++This指針

2021-12-29 20:31:40

C++多態(tài)指針

2021-12-09 10:56:50

函數(shù)C++原型

2021-11-26 00:03:20

C++編譯常量

2021-10-26 00:19:51

C++結(jié)構(gòu)體存儲(chǔ)

2021-12-08 10:43:09

C++實(shí)現(xiàn)

2021-12-10 10:45:36

C++函數(shù)Stock

2021-12-30 14:58:58

C++函數(shù)動(dòng)態(tài)

2021-11-27 11:50:09

C++靜態(tài)持續(xù)

2021-11-09 10:38:16

C++Const指針

2021-12-11 19:02:03

函數(shù)C++對(duì)象

2021-11-10 10:48:36

C++函數(shù)指針

2021-12-15 10:25:57

C++運(yùn)算符重載

2021-12-05 18:20:42

C++空間特性

2022-01-04 16:35:42

C++Protected關(guān)鍵字

2021-10-27 16:27:20

C++指針操控

2021-10-26 15:36:17

C++枚舉值類型

2023-11-12 23:08:17

C++初始化

2021-11-30 11:04:36

C++函數(shù)語(yǔ)言

2021-12-16 10:40:11

C++運(yùn)算符重載
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)