如果你想得到一个可用于常量表达式中的常量,例如数组大小的定义,那么你有两种选择:
那么,为何要有这些不方便的限制?因为类通常声明在头文件中,而头文件往往被许多单 元所包含。但是,为了避免链接器设计的复杂化,C++要求每个对象都只能被定义一次。如果C++允许类内定义要作为对象被存在内存中的实体,那么这项要求 就无法满足了。关于C++设计时的一些折衷,参见《The Design and Evolution of C++》。
如果这个常量不需要被用于常量表达式,那么你的选择余地就比较大了:
只有当static成员在类外被定义了,你才可以获取它的地址,例如:
原文地址:http://www.research.att.com/~bs/bs_faq2.html#in-class