我正在讨论一些C++/CLI材料,我遇到了一个文字字段的概念:
literal int inchesPerFoot = 12;
Run Code Online (Sandbox Code Playgroud)
这比const更可取,因为const FIELD不能存在,因为字段不能自己初始化...所以:
class aClass
{
private:
const int aConstant = 1; // Syntax error.
...
};
Run Code Online (Sandbox Code Playgroud)
谢谢,
斯科特
Mat*_*ith 17
文字字段用于编译时常量.它与类相关联(类似于"静态const"字段).在您的示例中aConstant是一个非静态const(基于实例)字段 - 这就是您在声明时无法初始化它的原因(它将在ctor的初始化列表中初始化).
文字和静态const字段之间的区别在于引用程序集不能使用静态const字段作为编译时常量,而文字可以.但是,在同一个程序集中,static const可以用作编译时常量.
仅供参考,文字等同于C#的常量.initonly相当于C#的readonly.