c++ - 使用另一个类的参数复制构造函数

标签 c++ arduino

我尝试从另一个类复制一个构造函数。这两个类在同一个文件中。我目前得到的错误是:

error: no matching function for call to B::B(A&)

来自主文件的片段:

#include "file.h"
// create the objects
A object1(1000000, 5);
B object2(object1);

来自 file.cpp 的片段:

class A {
public:
    A::A(uint32_t one, uint32_t two) { }
};
class B : public A {
public:
    B::B(const B &copy) : A(copy) { }
 }

};

头文件中的一个片段。

class B : public A {
public:
    B(const B&);

我试图使代码对于 stackoverflow 尽可能简单。有人可以解释这里有什么问题吗?

最佳答案

您的 B::B(const B&) 需要对 const B 的引用,但您提供的是 A 的实例。B 派生自 A 无关紧要;即使每个 B 都是 A,反之亦然。事实上,object1 是 A,但不是 B。

进一步澄清:如果您希望 B 可以从 A 构造,则需要提供一个采用 A 的构造函数,例如:B::B(const A& copyA): A(copyA) {}

关于c++ - 使用另一个类的参数复制构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50927400/

相关文章:

C++ ios::out 文件流标志:为什么会影响性能?

c++ - VC++ 与 GCC 预处理器

Arduino 软件与 LinkSprite Jpeg 相机的串行连接

ios - 我可以使用 eBay 上便宜的 nRF51822 模块与 iOS 设备通信以获取通知 (ANCS) 吗?

c++ - 使用 GDB 获取 lambda 的行号

c++ - 为什么通过构造函数返回对象时没有临时对象?

c++ - 在方法 c 中传递双指针

algorithm - 凯撒密码加密给出错误的输出

python - 如何从串口读取数据? Python

在C中创建数组列表