Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 链接器错误:";LNK2019:未解析的外部符号;_C++_Linker - Fatal编程技术网

C++ 链接器错误:";LNK2019:未解析的外部符号;

C++ 链接器错误:";LNK2019:未解析的外部符号;,c++,linker,C++,Linker,我得到链接器错误,无法找出问题的根源。我希望你能帮助我!创建类ClMyClass的对象时,该错误已经发生 ClMyClass::ClMyClass(){ //implementation } ClMyClass::~ClMyClass(){ //implementation } 两个错误: Error 18 error LNK2019: unresolved external symbol "public: virtual __thiscall ClMyClass::~

我得到链接器错误,无法找出问题的根源。我希望你能帮助我!创建类
ClMyClass
的对象时,该错误已经发生

ClMyClass::ClMyClass(){
    //implementation
}

ClMyClass::~ClMyClass(){
    //implementation
}
两个错误:

Error   18  error LNK2019: unresolved external symbol "public: virtual __thiscall ClMyClass::~ClMyClass(void)" (??1ClMyClass@@UAE@XZ) referenced in function "void __cdecl Test1(void)" (?Test1@@YAXXZ)

Error   19  error LNK2019: unresolved external symbol "public: __thiscall ClMyClass::ClMyClass(void)" (??0ClMyClass@@QAE@XZ) referenced in function "void __cdecl Test1(void)" (?Test1@@YAXXZ)  


//Test.cpp
#include "StdAfx.h"
#include "MyClass.hpp"

void Test1(){

 ClMyClass oHandle;
}

//ClMyClass.hpp

class ClMyClass: public ClMyClassBase
{
public: 
    ClMyClass(void);
    virtual ~ClMyClass(void);

//methods...

}


//ClMyClass.cpp

ClMyClass::ClMyClass(void):ClMyClassBase(),m_nCallbackError(ERROR_NOT_INITIALIZED), m_eState(eUnknown)
{   
    //initialize members
}

ClMyClass::~ClMyClass(void)
{
    Unassign();
}

编辑:添加.cpp文件

您尚未定义在类中声明的构造函数和析构函数
ClMyClass

ClMyClass::ClMyClass(){
    //implementation
}

ClMyClass::~ClMyClass(){
    //implementation
}

这通常在一个单独的
.cpp
文件中完成,该文件包含所有类的“成员函数”实现。

在您的实现中,您没有实现虚拟函数。如果使用虚拟函数,则必须实现所有虚拟函数,即使不使用它们。否则,链接器将出现您看到的未解决的符号错误


如果一个函数未在类中使用,则不会得到错误,因为没有对该函数的引用。因此,链接器不会看到它,也不会抱怨。对于虚拟函数,这是不同的,因为它们总是生成的。

您需要定义编译器抱怨的两个函数:
ClMyClass
~ClMyClass
。声明它们而不实现它们通常会导致这种错误。@Nbr44但它们是标准的构造函数和解构器。“我认为他们不需要定义?”博格里德说,这是一个相当糟糕的复制品。下次在搜索条件中包含[]时?@sehe我使用了相关问题列表,但没有search@tzippy从您编写原型的那一刻起,它们就不再是“标准”的ctor和dtor。默认值只有在您不声明它们的情况下才会出现。如果您这样做,您也有责任定义它们。很抱歉,我完全忘了包含.cpp文件。它存在并且具有构造函数和解构器的定义@tzippy您的链接器所说的是“我知道有两个函数(ctor和dtor),它们已经声明了,但我找不到它们的实现”如果我不清楚,很抱歉,但它们实际上是在cpp文件中定义的。刚刚把它添加到我的帖子里。实际上,有一个实现文件。我把它添加到我的帖子里。很抱歉当然,我还是会犯错误。