国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C++ > 正文

C++ 必須在類初始化列表中初始化的幾種情況

2019-11-08 03:09:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1. 類成員為const類型

2. 類成員為引用類型

復(fù)制代碼
#include <iostream>using namespace std;class A{    public:        A(int &v) : i(v), p(v), j(v) {}        void PRint_val() { cout << "hello:" << i << "  " << j << endl;}    private:        const int i;        int p;        int &j;};int main(int argc ,char **argv){    int pp = 45;    A b(pp);    b.print_val();}復(fù)制代碼

究其因

const對(duì)象或引用只能初始化但是不能賦值。構(gòu)造函數(shù)的函數(shù)體內(nèi)只能做賦值而不是初始化,因此初始化const對(duì)象或引用的唯一機(jī)會(huì)是構(gòu)造函數(shù)函數(shù)體之前的初始化列表中。

從無(wú)到有叫初始化,初始化(調(diào)用拷貝構(gòu)造函數(shù))創(chuàng)建了新對(duì)象;賦值(調(diào)用賦值操作符)沒(méi)有創(chuàng)建新對(duì)象,而是對(duì)已有的對(duì)象賦值。

 

3. 類成員為沒(méi)有默認(rèn)構(gòu)造函數(shù)的類類型

復(fù)制代碼
#include <iostream>using namespace std;class Base{    public:        Base(int a) : val(a) {}    private:        int val;};class A{    public:        A(int v) : p(v), b(v) {}        void print_val() { cout << "hello:" << p << endl;}    private:        int p;        Base b;};int main(int argc ,char **argv){    int pp = 45;    A b(pp);    b.print_val();}復(fù)制代碼

原因同樣是創(chuàng)建對(duì)象時(shí),要初始類成員的每一個(gè)成員

 

4. 如果類存在繼承關(guān)系,派生類必須在其初始化列表中調(diào)用基類的構(gòu)造函數(shù)

復(fù)制代碼
#include <iostream>using namespace std;class Base{    public:        Base(int a) : val(a) {}    private:        int val;};class A : public Base{    public:        A(int v) : p(v), Base(v) {}        void print_val() { cout << "hello:" << p << endl;}    private:        int p;};int main(int argc ,char **argv){    int pp = 45;    A b(pp);    b.print_val();}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 合山市| 桃源县| 沁水县| 秦皇岛市| 任丘市| 广河县| 黄石市| 宿迁市| 上虞市| 太仆寺旗| 静宁县| 疏附县| 湾仔区| 温泉县| 东平县| 蕉岭县| 峨边| 绥棱县| 辽宁省| 定日县| 临江市| 宁明县| 富平县| 宁夏| 林周县| 盐山县| 久治县| 二连浩特市| 黎川县| 柳林县| 承德县| 桑日县| 庄河市| 宾阳县| 游戏| 石台县| 永顺县| 沧源| 象州县| 东阳市| 竹北市|