2011-03-08 30 views
5

我在看一些C++/CLI材料和我遇到一個文本字段的概念:立即數與在C++/CLI常數變量

literal int inchesPerFoot = 12; 

這是最好一個常量,因爲常量不能存在,因爲現場無法初始化本身...所以:

class aClass 
{ 
    private: 
     const int aConstant = 1; // Syntax error. 
... 
}; 

感謝,

斯科特

回答

17

文字字段用於編譯時常量。它與類關聯(類似於「靜態常量」字段)。在你的例子中,aConstant是一個非靜態的const(基於實例)字段 - 這就是爲什麼你不能在聲明時初始化它(它會在ctor的初始化列表中初始化)。

字面和靜態常量字段之間的區別在於,引用程序集不能使用靜態常量字段作爲編譯時常量,而文字可以。但是,在同一個程序集中,靜態常量可以用作編譯時間常量。

FYI, 文字等同於C#的常量。 initonly相當於C#的只讀。

+0

感謝您的回答!我讚賞提及initonly以及...在發佈之後不久發現。 – 2011-03-10 21:25:33