首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

在静态函数中调用静态对象报错 error LNK2001,该怎么解决

2013-09-09 
在静态函数中调用静态对象报错 error LNK2001本帖最后由 leezjl 于 2013-09-08 16:00:26 编辑贴上具体的代

在静态函数中调用静态对象报错 error LNK2001
本帖最后由 leezjl 于 2013-09-08 16:00:26 编辑 贴上具体的代码:

//ModBridge.h
#pragma once
#include "EventDispatcher.h"
#include "cocoa/CCObject.h"
USING_NS_CC;
class ModBridge 
{
public:
static CCObject obj;
static EventDispatcher dispatcher;
public:
ModBridge(void);
~ModBridge(void);
static void regist(int type, Function func);
static void call(int type, CCObject* data);
};

//ModBridge.cpp
void ModBridge::regist(int type, Function func)
{
dispatcher.addEventListener(type, func);
}



这是报的错误
ModBridge.obj : error LNK2001: 无法解析的外部符号 "public: static class EventDispatcher ModBridge::dispatcher" (?dispatcher@ModBridge@@2VEventDispatcher@@A)

EventDispatcher这是跟ModBridge同目录下的一个类,这是什么一个情况呢,各位有解决这个问题的相关经验吗? 静态函数 静态类 无法解析的外部符号 LNK2001
[解决办法]
你的static 成员有没有在类外进行初始化?
[解决办法]
引用:
Quote: 引用:

你的static 成员有没有在类外进行初始化?
并没有在类外的任何地方初始化

静态成员必须初始化的,像下面这样
CCObject ModBridge::obj;   //用默认构造初始化静态成员
你把2个都初始化,再试试

热点排行