关于类的静态数据成员的初始化。

systemid 2002-05-16 09:34:55
我想初始化一个类的静态数据成员应该怎么做?
...全文
38 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jackdong 2002-05-16
c++编程思想上第九章有介绍
class A{
public:
int a;
const int b;
static int c;
A();
~A();
};

int A::c = 3;
main()
{}

大家可以看一下
回复
RodgerLiang 2002-05-16
Count::Count() : count=0
{
}

:之后的表达式一般用来初始化常量的成员变量(const)和调用有参数的父类构造函数。


回复
SlaSk 2002-05-16
storein(满天星) ( ) 信誉:110

有一种写法,在构造函数那里如下写
Count::Count():count=0
{
}
不知道是不是这个意思,一直没有明白
----------------------------------------

应该是:

Count::Count():count(0)
{
}
回复
Bind 2002-05-16
sorry,刷新太快了,是楼上的楼上
回复
Bind 2002-05-16
楼上理解有误。count在Count类的构造函数之前被初始化,但不是静态成员。
静太成员在main之前被初始化。比如:
class A{
public:
int a;
const int b;
static int c;
A();
~A();
};

int A::c = 3;

A():a(1), b(2)//使用这种方法最大的好处就是可以在此初始化常成员变量
{
}
回复
systree 2002-05-16
最新的C++标准要求类静态成员可以在定义时直接初始化,
我没有试过,你看看,也就是
class A
{
static int a = 0;
};
回复
storein 2002-05-16
有一种写法,在构造函数那里如下写
Count::Count():count=0
{
}
不知道是不是这个意思,一直没有明白

回复
lixiner 2002-05-16
静态数据成员在程序初始化,main主函数调用前就要分配空间!
回复
xiao_potato 2002-05-16
举个例子:
class Count{
private:
static intcount;
public:
Count();
};
int Count::count=0;
void main()
{
}
请注意:静态成员必须在属于全局范围的类中定义后,再在全局范围中给予初值,
然后才能使用。给定初值时,必须同时指明数据类型与所属的类的范围。
回复
dingkl 2002-05-16
在CMyClass.cpp中:
CMyClass::m_MyStatic = ...;
回复
lixiner 2002-05-16
A():a(1), b(2)//使用这种方法最大的好处就是可以在此初始化常成员变量
{
}
A()
{
a=1;
b=2;
}
大家知道有什么区别吗?
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2002-05-16 09:34
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……