1. 程式人生 > >C++筆記 第二十課 初始化列表的使用---狄泰學院

C++筆記 第二十課 初始化列表的使用---狄泰學院

如果在閱讀過程中發現有錯誤,望評論指正,希望大家一起學習,一起進步。
學習C++編譯環境:Linux

第二十課 初始化列表的使用

問題:類中是否可以定義const成員?可以

小實驗
下面的類定義是否合法?不合法
如果合法,ci的值是什麼,儲存在哪裡?
在這裡插入圖片描述

20-1 類中的const成員

#include <stdio.h>
class Test
{
private:
    const int ci;
public:
    Test()
    {
        ci = 10;
    }
    int getCI() 
    { 
        return ci; 
    }
};
int main()
{
    Test t;
    
    printf("t.ci = %d\n", t.getCI());
    
    return 0;
}

1.類成員的初始化

C++中提供了初始化列表對成員變數進行初始化
語法規則
在這裡插入圖片描述
注意事項
成員的初始化順序與成員的宣告順序相同
成員的初始化順序與初始化列表中的位置無關
初始化列表先於建構函式的函式體執行

20-2 初始化列表的使用

2.類中的const成員

類中的const成員會被分配空間的
類中的const成員的本質是隻讀變數
類中的const成員只能在初始化列表中指定初始值
編譯器無法直接得到const成員的初始值,因此無法進入符號表成為真正意義上的常量。

20-3 只讀成員變數

小插曲
初始化與賦值不同
初始化:對正在建立的物件進行初值設定
賦值:對已經存在的物件進行值設定
小結


類中可以使用初始化列表對成員進行初始化
初始化列表先於建構函式體執行
類中可以定義const成員變數
const成員變數必須在初始化列表中指定初值
const成員變數為只讀變數