C++ 标准允许在类的定义中定义静态整数常量,但其他类型的类常量则需要单独的定义或将常量封装在函数中 。举例:
// File widget.h
class Widget {
static const int defaultWidth = 400; // value provided in declaration
static const double defaultPercent; // value provided in definition
static const char* Name() {return "Widget"; }
};
// File widget.cpp
const double Widget::defaultPercent = 66.67; // value provided in definition
const int Widget::defaultWidth; // definition required
此外, enum 也常用于定于类常量 。对于单独的类常量, static声明是必须的,这样才能保证所有的类常量公用一个地址空间。