C++静态成员问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 14:27:40
class tree
{
private:
const static int rad=5;
int height;
};

const int tree::rad;
这样定义一个const static 成员由问题吗,编译器报错,但是我看C++primer就是这么讲的啊,我用vc++6.0

首先静态数据成员(即static修饰的类型)与常类型(即const修饰的类型)是两回事,静态成员只有一个拷贝,其值自己要能引用的地方就能改,而常类型是常量任何地方不能改。
其次,在类的定义中不能给任何成员赋初值,包括静态成员。

如果你要这个量不变就只使用const int rad定义就行了
如果你所以实体需要修改这唯一的变量,把其定义在外部,比如类的头文件里面。

另外,你如果要使用这个类你要先声明一个实体
比如
tree a;
a.rad使用即可

const