C 類內成員初始化順序

2021-10-25 18:02:29 字數 528 閱讀 1394

是類所有的物件的共享的成員,而不是某個物件的成員。它在物件中不占用儲存空間,這個屬性為整個類所共有,不屬於任何乙個具體物件。所以靜態成員不能在類的內部初始化,比如宣告乙個學生類,其中乙個成員為學生總數,則這個變數就應當宣告為靜態變數,應該根據實際需求來設定成員變數。

1.成員變數在使用初始化列表初始化時,與建構函式中初始化成員列表的順序無關,只與定義成員變數的順序有關

2.如果不使用初始化列表初始化,在建構函式內初始化時,此時與成員變數在建構函式中的位置有關

3.類中const成員常量必須在建構函式初始化列表中初始化

4.類中static成員變數,只能在類外初始化(同一類的所有例項共享靜態成員變數)。

1) 基類的靜態變數或全域性變數

2) 派生類的靜態變數或全域性變數

3) 基類的成員變數

4) 派生類的成員變數

C 類內成員初始化

所有標準為c11標準,舊的就不看了。首先說一條指導規則 通常情況下,不應該在類內部初始化成員!無論是否為靜態 是否為常量 是否為int等!統統不建議在類內初始化,因為本質上類只是宣告,並不分配記憶體,而初始化會分配記憶體,類內初始化會將兩個過程混在一起!按順序說。首先靜態成員,用static限制的成...

C 的類成員初始化順序

c 的類成員的定義和宣告如下 using unityengine using system.collections public class testcontroller eccontroller static int d 100 static int b int c 9 private testc...

C 靜態成員的類內初始化

一般來說,關於c 類靜態成員的初始化,並不會讓人感到難以理解,但是提到c 靜態成員的 類內初始化 那就容易迷糊了。我們來看如下 1 2 include3 include4 using namespace std 56 class example 1213 14 include example.h 1...