C++:在构造函数中定义类的问题
c++: issue defining a class in a constructor
在对象的构造函数中,我有以下代码:
ConfigReader::ConfigReader(){
TiXmlDocument doc(CONFIGURATION_FILE_LOCATION);
configDoc = TiXmlHandle(&doc);
}
当我尝试编译时,我收到以下警告:
no matching funciton for call to 'TiXmlHandle::TiXmlHandle();
configDoc
是在我的 h 文件中定义为类的私有变量的TiXmlHandle
。 这两个类都来自TinyXML C++项目,但这几乎无关紧要。编译器是正确的,TiXmlHandle
没有默认构造函数。但是,由于我使用有效的构造函数构造 TiXmlHandle,因此从理论上讲,这无关紧要。
语法(如果有的话)可以告诉C++不要费心尝试使用默认构造函数创建TiXmlHandle
,因为我只是要覆盖它?
对于这个简单的问题,我深表歉意,我知道这是我应该能够查找的那种东西,但我已经尝试过,但无法偶然找到答案。
configDoc
是默认构造的,然后,稍后,您尝试复制将其分配给TiXmlHandle(&doc)
。TiXmlHandle
显然不能默认构造,因此这不起作用。默认构造是隐式发生的,因为您尚未使用成员初始化列表重写它。
您可以像这样使用成员初始化列表:
ConfigReader::ConfigReader()
: configDoc(/*args*/)
{
// ...
}
显然,要将正确的参数传递给该位置的configDoc
,您必须稍微重组代码。也许您的TiXmlDocument
也应该成为会员。有很多重构选项;你可以自己弄清楚那部分。
相关文章:
- Visual Studio中的函数声明和函数定义问题
- 使用自定义比较函数使用std::sort()对矢量字符串进行排序时出现问题
- Cmake 链接问题:未定义对 Button::mousePressEvent(QGraphicsSceneMouseE
- 如何在标头中声明(或定义)函数的问题
- Xcode 语义问题引用或以前定义的代码
- 我的超类中的模板问题与结构定义
- Arduino:在 loop() 和自定义函数中运行相同的代码时出现问题
- 编译问题:在函数"_start"中:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- 将文件复制到自定义位置,存在字符串转换问题
- 在C++中循环访问自定义结构列表的小问题
- 运行veins_inet示例 - 未定义的引用的 Omnet++ 问题
- libssh 问题编译问题未定义的错误
- 在点云库 (PCL) 中使用自定义点类型的问题
- C++ - 对 PCM::getInstance() 的未定义引用问题
- 在 C++ 的自定义运算符中删除与删除[](不同于常见的删除与删除[]问题)
- 用户定义的文本运算符(在原始模式下)存在问题
- 从 C++ 到 Python 的 SWIG:未定义的符号导入问题
- 在内联程序集中定义函数和从 C++ 调用时出现问题
- 在 cout 中将线条表单文件与自定义文本组合时出现问题
- 在Visual Studio代码中包含自定义c++库的问题