Qt C++ 析构函数错误
Qt C++ destructor error
我有一个关于继承 classes 的析构函数的问题:
我有一个父class几何:
Geometry.h:
#ifndef GEOMETRY_H
#define GEOMETRY_H
#include <QDialog>
class Geometry : public QDialog
{
Q_OBJECT
public:
explicit Geometry(QWidget *parent = 0);
virtual ~Geometry() {}
};
#endif // GEOMETRY_H
和
Geometry.cpp
#include "Geometry.h"
#include "ui_Geometry.h"
Geometry::Geometry(QWidget *parent) :
QDialog(parent) { }
当我将 Geometry.h 更改为
virtual ~Geometry() ;
并将以下内容添加到 Geometry.cpp
Geometry::~Geometry(void)
{
// ...
}
我收到错误 "multiple definition of Geometry::~Geometry() "
你能告诉我为什么会出现这个错误吗?我可以将代码放入 .cpp 文件中,不是吗?
你有这个,这是析构函数的完整实现:
virtual ~Geometry() {}
然后你加上这个,也是析构函数的完整实现:
Geometry::~Geometry(void)
{
// ...
}
这就是您收到的错误。
要解决此问题,请删除 header 文件中的空括号:
virtual ~Geometry();
编辑:我看到您进行了更改,因此您很可能没有使用更新后的 header.
重建整个应用程序
我有一个关于继承 classes 的析构函数的问题:
我有一个父class几何:
Geometry.h:
#ifndef GEOMETRY_H
#define GEOMETRY_H
#include <QDialog>
class Geometry : public QDialog
{
Q_OBJECT
public:
explicit Geometry(QWidget *parent = 0);
virtual ~Geometry() {}
};
#endif // GEOMETRY_H
和
Geometry.cpp
#include "Geometry.h"
#include "ui_Geometry.h"
Geometry::Geometry(QWidget *parent) :
QDialog(parent) { }
当我将 Geometry.h 更改为
virtual ~Geometry() ;
并将以下内容添加到 Geometry.cpp
Geometry::~Geometry(void)
{
// ...
}
我收到错误 "multiple definition of Geometry::~Geometry() "
你能告诉我为什么会出现这个错误吗?我可以将代码放入 .cpp 文件中,不是吗?
你有这个,这是析构函数的完整实现:
virtual ~Geometry() {}
然后你加上这个,也是析构函数的完整实现:
Geometry::~Geometry(void)
{
// ...
}
这就是您收到的错误。
要解决此问题,请删除 header 文件中的空括号:
virtual ~Geometry();
编辑:我看到您进行了更改,因此您很可能没有使用更新后的 header.
重建整个应用程序