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

systemid 2002-05-16 09:34:55
我想初始化一个类的静态数据成员应该怎么做?
...全文
92 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
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;
}
大家知道有什么区别吗?

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧