关于静态数据成员报LNK2001错误

yanpf 2008-03-09 11:39:19
我在一个头文件里声明了一个类,类有一个静态数据成员,也是类类型的,但是是另外一个类的类型,在CPP文件中定义了这个静态数据成员,单独编译、链接这个包能通过,但是我在另外的包里只要#include这个包含静态数据成员的类的这个头文件,就会报LNK2001错误,不知道为什么啊,请各位高手指教!
...全文
155 5 打赏 收藏 转发到动态 举报
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
baihacker 2008-03-09
  • 打赏
  • 举报
回复
把那个cpp放到工程中来或者在工程中新建一个cpp文件,然后#include "那个cpp文件"
  • 打赏
  • 举报
回复
你这个静态变量在cpp文件中初始化了没有
静态类成员变量需要初始化
class test
{
static int x;
};
cpp文件中写这样的才可以.
int test::x = 0;
我啃 2008-03-09
  • 打赏
  • 举报
回复
链接时候要链接定义那个静态数据成员的.cpp文件,否则会链接失败
野男孩 2008-03-09
  • 打赏
  • 举报
回复
外面那个是定义。类里面那个才是声明~
ryfdizuo 2008-03-09
  • 打赏
  • 举报
回复
同意2楼的说法,外面申明一下的。

63,594

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下