C++ 错误 : no matching function for all to

标签 c++ inheritance compiler-errors

我正在尝试实现一个函数,该函数使用其构造函数返回一个类对象。 该类对象作为唯一带参数的构造函数,没有任何默认构造函数(因为我不需要它)。 当我尝试返回该类对象时 - 出现该错误..

基础.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/

相关文章:

c++ - Qt Creator IDE 似乎错误地将 reinterpret_cast<::GlobalType> 标记为无效

c++ - 从 CPP 文件中的 C 文件访问变量

c++ - C/C++ 中的正向和反向 Gabor 变换库

c++ - 从纯抽象基类继承 typedef

c++ - 将绑定(bind)函数分配给 std::function

c++ - 错误 :‘itoa’ 未在此范围内声明

c++ - 通过 C ABI 通过 void 指针传递 C++ 对象(可能具有多重虚拟继承)

Java - 强制执行已实现的方法

c++ - “expected ')' before textIn”和“expected constructor, destructor or type conversion before '(' token”

css - 如何在 LESS 编译器中抛出错误