2010-11-03 80 views

回答

4

簡短回答:

不,直到靜態成員是const並且是整型或枚舉類型。

龍答:

$ 9.4.2/4 - 「如果一個靜態數據成員是const的整體或常量枚舉 型 ,其在類 定義聲明可以指定一個 常數初始化這應是一個 積分常量表達式(5.19)。 在這種情況下,該構件可以出現在 積分常量表達式。該 構件應仍處於 命名空間範圍來限定,如果它是在 編程的,用於m和名稱空間範圍 定義不應包含 初始值設定項。「

3

不適用於類類型的靜態數據成員,如您的示例中所示。

9.4.2/2:

靜態數據的聲明 成員在其類定義不 定義...靜態數據成員應在 命名空間中出現 的定義範圍包括成員的 類定義。

9.4.2/4:

如果靜態數據成員是常量 積分或const枚舉類型的,其 在類定義 聲明可以指定一個 恆定初始化內容應是一個 積分常量表達式(5.19)。 在這種情況下,成員可以出現在 積分常量表達式中。如果在 程序中使用,並且名稱空間範圍 定義中不包含 初始值設定項,則 成員仍應在 名稱空間範圍內定義。

相關問題