Chemical_Compound::Chemical_Compound(Element &a)
{
Elements.push_back(a);
}
这是我的构造函数
原型:
Chemical_Compound(Element & a);
现在,我尝试在另一个类中使用构造函数,这给了我一些问题
Product_b(a);
在标题中定义为
Chemical_Compound Product_b;
Element a;
所以,我真的很困惑,为什么我得到一个错误,因为参数匹配,即使我删除&它仍然给我一个错误,谢谢!
我正在使用QT编辑器
/home/CENCORED/Code/cpp/Chem_Framework/reaction.cpp:23: error: no match for call to '(Chemical_Compound) (Element&)'
Product_b(a);
^
答案 0 :(得分:1)
构造函数仅在构造时调用。
发生的事情是:
Chemical_Compound Product_b;
您正在调用编译器生成的默认构造函数,该构造函数不带参数。
现在尝试
Product_b(a);
正如编译器告诉你的那样使nosense成为现实。
这样可行:
Element a;
Chemical_Compound Product_b(a);
答案 1 :(得分:1)
首先开始
Chemical_Compound Product_b;
Element a;
不应该在标题中。
但也应该
Element a;
Chemical_Compound Product_b(a);