C 中非靜態資料成員的初始化順序
使用非靜態資料成員建立類別的新實例時,它們初始化的順序對於正確的物件構造至關重要。
在這種情況下,讓我們考慮以下內容code:
class A {}; class B {}; class X { A a; B b; };
問題來了:當呼叫類別X的建構子時,首先呼叫哪個建構子(A或B )?它們在類別定義中的位置決定了順序嗎?
根據 C 標準第 12.6.2 節,初始化順序如下:
因此,在提供的程式碼中,非靜態資料成員 a 和 b 是按照它們的順序初始化的宣告,首先是a,然後是b。 A 的構造函數將在 B 的構造函數之前被呼叫。
總之,非靜態資料成員的初始化順序由它們在類別定義中的宣告順序決定,而不是由它們在建構函數中的位置決定身體。以上是C類中非靜態資料成員的初始化順序是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!