免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2474 | 回复: 5
打印 上一主题 下一主题

[C++] C++ 静态类成员问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-25 10:36 |只看该作者 |倒序浏览
class watcher,有个静态的public 类成员 _reload

当我通过其他文件访问 a::flag的时候报错

/tmp/cctuNM9L.o(.gnu.linkonce.t._ZN7watcher10set_reloadEi+0x7): In function `watcher::set_reload(int)':
: undefined reference to `watcher::_reload'
collect2: ld returned 1 exit status

这根c++primer上写的似乎不一致阿,另外我用了哪里介绍的另一种方法,就是通过类静态成员函数访问静态类成员变量,也还是报这个错?

怎么能够解决这个问题呢

[ 本帖最后由 picobsd 于 2006-10-25 10:38 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-10-25 10:56 |只看该作者

回复 1楼 picobsd 的帖子

恐怕只有你自己明白你在说什么

论坛徽章:
0
3 [报告]
发表于 2006-10-25 11:05 |只看该作者
代码贴出来

论坛徽章:
0
4 [报告]
发表于 2006-10-25 11:17 |只看该作者
顶,先把语文学好,表达出你想说的!

论坛徽章:
0
5 [报告]
发表于 2006-10-25 11:18 |只看该作者
是不是应该:watcher::_reload
这样访问试试?

论坛徽章:
0
6 [报告]
发表于 2006-10-25 12:43 |只看该作者
估计你是只在头文件的类定义中声明了静态成员,却没有在实现文件.cpp里面提供静态成员的定义.


  1. // object.h

  2. #ifndef OBJECT_H
  3. #define OBJECT_H
  4. class Object
  5. {
  6. private:
  7.       static int instanceNumber;
  8. };
  9. #endif // OBJECT_H

  10. // object.cpp
  11. int Object::instanceNumber = 0;   //实现文件内进行定义.(static const xx除外--只要在头文件里就可以了).

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP