我正在尝试编写一个类来解析XML文档。这是头文件:
using namespace std;
class xmlHelper {
public:
xmlHelper();
virtual ~xmlHelper();
private:
xmlpp::DomParser parser;
};代码如下所示:
#include "xmlHelper.h"
xmlHelper::xmlHelper()
{
}
xmlHelper::~xmlHelper()
{
}编译失败,出现以下错误:
error: use of deleted function ‘xmlHelper::xmlHelper(const xmlHelper&)’
error: use of deleted function ‘xmlpp::Parser::Parser(const xmlpp::Parser&)’
error: use of deleted function ‘xmlpp::NonCopyable::NonCopyable(const xmlpp::NonCopyable&)’将头文件中的xmlpp::DomParser parser;行移动到构造函数中,代码就会编译。我想使用一个私有变量来保存XML文档。要创建这样一个变量,我需要做些什么?
Thx
发布于 2019-07-28 00:53:05
您的类可能正在被复制到某个地方(也许std::vector容器?)并且xmlpp::Parser对象不允许复制。
当您有一个允许复制/移动的类时,类中的所有成员都必须具有未删除的复制/移动构造函数或运算符(默认或显式定义,但不删除)。
请改用std::shared_ptr<xmlpp::Parser>。
https://stackoverflow.com/questions/57234203
复制相似问题