C ++ / CLI中的字面字段与常量变量

时间:2011-03-08 20:40:59

标签: c++-cli

我正在浏览一些C ++ / CLI资料,我遇到了字面字段的概念:

literal int inchesPerFoot = 12;

这是否优于const,因为const FIELD 不能存在,因为字段无法初始化...所以:

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

谢谢,

斯科特

1 个答案:

答案 0 :(得分:17)

文字字段用于编译时常量。它与类相关联(类似于“静态const”字段)。在您的示例中,aConstant是一个非静态const(基于实例)字段 - 这就是您在声明时无法初始化它的原因(它将在ctor的初始化列表中初始化)。

文字和静态const字段之间的区别在于引用程序集不能使用静态const字段作为编译时常量,而文字可以。但是,在同一个程序集中,static const可以用作编译时常量。

FYI, literal等同于C#的const。 initonly等同于C#的readonly。