我正在尝试实现一个函数,该函数使用其构造函数返回一个类对象。 该类对象作为唯一带参数的构造函数,没有任何默认构造函数(因为我不需要它)。 当我尝试返回该类对象时 - 出现该错误..
基础.cpp
派生基础::运算符+ (){ 返回派生(*这个);//没有匹配函数来调用‘Derived::Derived(Derived)’
基础.h
虚拟派生运算符+();
Derived.h //构造函数:
派生(基础&b);
派生(派生&d);
1。我该怎么做才能修复该错误?
2。声明 (const Derived &) 和 (Derived &) 有什么区别?
谢谢
最佳答案
Derived&
不会绑定(bind)到临时对象。您的 operator+
返回一个临时值。
解决方案:添加 const
因为 const&
将绑定(bind)到临时对象。
关于C++ 错误 : no matching function for all to,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27959561/