在编译下面的代码时,VC ++会在函数static
的主文件中抱怨链接错误。该函数已声明为IComponent * componentInterface = init((IKernel *) kernelInterface);
Profile componentProfile = componentInterface->getProfile();
并已定义;但我认为这不是问题所在。我错过了什么吗?我是以错误的方式调用静态方法吗?
的main.cpp
class IComponent{
public:
static bool startComponent();
static bool stopComponent();
static Profile getProfile();
};
IComponent.h
Error MessageError 1 error LNK2001: unresolved external symbol "public: static class Profile __cdecl IComponent::getProfile(void)" (?getProfile@IComponent@@SA?AVProfile@23@XZ) C:\...\Implementation\main.obj Moniware
编辑:
scanFile
答案 0 :(得分:1)
应该调用静态函数:
IComponent::getProfile();
您不需要IComponent
的对象或指针来调用静态函数。
但正如您所提到的,您收到链接器错误,这意味着您错过了实现:链接器无法找到实现。