Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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++ 错误链接2019 c++;_C++_Visual Studio 2012 - Fatal编程技术网

C++ 错误链接2019 c++;

C++ 错误链接2019 c++;,c++,visual-studio-2012,C++,Visual Studio 2012,我遵循这一点,但我遇到了一个无法解决的错误;链接器错误: 错误1错误LNK2019:未解析的外部符号“public:\u thiscall Vector3d::~Vector3d(void)”(??1Vector3d@@QAE@XZ)在函数“class std::basic_ostream>和u cdecl operator中引用,您在头文件中声明了析构函数: class Vector3d { public: float x,y,z; Vector3d(void);

我遵循这一点,但我遇到了一个无法解决的错误;链接器错误:


错误1错误LNK2019:未解析的外部符号“public:\u thiscall Vector3d::~Vector3d(void)”(??1Vector3d@@QAE@XZ)在函数“class std::basic_ostream>和u cdecl operator中引用,您在头文件中声明了析构函数:

class Vector3d
{
  public:
    float x,y,z;
    Vector3d(void);
    Vector3d(float,float);
    Vector3d(float,float,float);
    ~Vector3d(void);
    ^^^^^^^^^^^^^^^^
    ...
但是您从未在任何地方实现过它,您应该在
Vector3d.cpp
中添加一个实现:

Vector3d::~Vector3d()
{
   ...
}

如果没有要销毁的内容,请删除
Vector3d.h
中的声明。

您在头文件中声明了析构函数:

class Vector3d
{
  public:
    float x,y,z;
    Vector3d(void);
    Vector3d(float,float);
    Vector3d(float,float,float);
    ~Vector3d(void);
    ^^^^^^^^^^^^^^^^
    ...
但是您从未在任何地方实现过它,您应该在
Vector3d.cpp
中添加一个实现:

Vector3d::~Vector3d()
{
   ...
}

如果没有要销毁的内容,请删除
Vector3d.h
中的声明。

您在.h文件中声明了一个析构函数,但在cpp中没有实现

~Vector3d(void); // you probably want to remove that line or default it if using C++11

声明一个空的析构函数首先是无用的,因为编译器无论如何都可以为您编写它,但更重要的是,由于C++11,它将阻止编译器生成移动构造函数,这将影响性能。

您在.h文件中声明了一个析构函数,但没有在cpp中实现

~Vector3d(void); // you probably want to remove that line or default it if using C++11

声明空析构函数首先是无用的,因为编译器可以为您编写它,但更重要的是,由于C++11,它将阻止编译器生成移动构造函数,这将影响性能。

不要在链接后面隐藏相关信息。链接到的页面将消失,您的问题将变得无用不要在链接后面隐藏相关信息。你链接到的页面将消失,你的问题将对其他人毫无用处。