声明和定义静态变量

moonwrite 2013-08-31 11:12:09
下面是一个构造函数
CCObject::CCObject(void)
{
//关于这个静态变量
//1.为什么不可以声明和定义在头文件中
//2.为什么要在构造函数中声明定义
static unsigned int uObjectCount = 0;
m_uID = ++uObjectCount;
}

...全文
151 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
羽飞 2013-09-01
  • 打赏
  • 举报
回复
可以声明在头文件,但是不能定义在头文件,因为如果有多个地方引用头文件,这个变量就会有多个,编译器会告诉你重复定义
worldy 2013-09-01
  • 打赏
  • 举报
回复
CCObject::CCObject(void) { //关于这个静态变量 //1.为什么不可以声明和定义在头文件中 //2.为什么要在构造函数中声明定义 static unsigned int uObjectCount = 0; //属于构造函数,不是类成员,当然你也可以定位为类成员,但感觉起来在此定义使得对象不会那么臃肿,会好点 m_uID = ++uObjectCount; //m_uID在记录创建的顺序,即使将uObjectCount 定义在类中,该成员也必须存在,并且,还的定义一个全局的CCObject::uObjectCount }
max_min_ 2013-09-01
  • 打赏
  • 举报
回复
变量 可以在多个地方申明, 但是只能在一个地方定义!
nextseconds 2013-09-01
  • 打赏
  • 举报
回复
引用 2 楼 hnwyllmm 的回复:
可以声明在头文件,但是不能定义在头文件,因为如果有多个地方引用头文件,这个变量就会有多个,编译器会告诉你重复定义

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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