我收到LNK2001错误。代码已经包含在下面。有谁能帮帮我吗?
Error 3 error LNK2001: unresolved external symbol "private: static class std::vector<struct _UpdateAction,class std::allocator<struct _UpdateAction> > InstrumentCache::actionTaken" (?actionTaken@InstrumentCache@@0V?$vector@U_UpdateAction@@V?$allocator@U_UpdateAction@@@std@@@std@@A) PerformanceTest.obj //UpdateAction.h
typedef struct _UpdateAction
{
enum FIS_ACTION {
ADDED,
UPDATED,
DELETED
};
int id;
int type;
int legacyType;
FIS_ACTION action;
}UpdateAction;
typedef std::vector<UpdateAction> ActionTakenVector;// InstrumentCache.h
#include UpdateAction.h
class InstrumentCache
{
public:
static ActionTakenVector& GetApplicationUpdateVector ()
{
return actionTaken;
}
static void ClearApplicationUpdateVector()
{
actionTaken.clear();
}
private:
static ActionTakenVector actionTaken;
};//faClient.h
#include "UpdateAction.h"
#include "InstrumentCache.h"
class FISClient
{
void FunctionOne()
{
ActionTakenVector& rV = InstrumentCache::GetApplicationUpdateVector();
InstrumentCache::ClearApplicationUpdateVector();
}
} ;PerformanceTest.cpp
#include "fisClient.h"发布于 2010-03-18 23:32:05
您似乎遗漏了actionTaken的定义(类中的声明是不够的)。做加法吗
ActionTakenVector工具缓存::操作标记;
在PerformanceTest.cpp帮助中?
发布于 2010-03-18 23:32:01
静态成员需要初始化。在类之外的某个地方,您应该编写ActionTakenVector InstrumentCache::actionTaken,它应该初始化该静态字段并消除错误。
https://stackoverflow.com/questions/2471001
复制相似问题