读书人

在静态函数中调用静态对象报错 error

发布时间: 2013-09-09 20:31:09 作者: rapoo

在静态函数中调用静态对象报错 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个都初始化,再试试

读书人网 >C++

热点推荐