静态成员变量为什么要类外部定义呢?

Dan1980 2006-09-15 05:15:50
谁能解释一下?
...全文
141 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞哥 2006-09-15
唉,不让定义
没办法

今天搞个代码说可以定义静态成员,报错:(

回复
OOPhaisky 2006-09-15
就这么规定的,遵守就是了。
回复
blue_zyb 2006-09-15
因为class声明只是编译器参照的一个模板,在没有对象生成的时候没有必要分配空间。所以说不能在类声明的时候为成员赋初始值之类的,也就是说不会定义,不会分配存储。

如果有
class A
{
static int a; // C++把class的静态成员处理为全局变量,这是一个全局变量a的
// 的声明,不过受class scope的访问限制,也即是A::a
}
对于此全局量a的定义,当然要放在global的位置
回复
jixingzhong 2006-09-15
比如你规定整型用 int 定义,
为什么?

没有原因,
这个是规定 ...
回复
jixingzhong 2006-09-15
这个是语法,
没有原因 ...
回复
发动态
发帖子
新手乐园
创建于2007-09-28

3.2w+

社区成员

C/C++ 新手乐园
申请成为版主
社区公告
暂无公告