我尝试从另一个类复制一个构造函数.这两个类在同一个文件中.我目前得到的错误是:
错误:没有匹配函数来调用B :: B(A&)
主文件中的一个片段:
#include "file.h"
// create the objects
A object1(1000000, 5);
B object2(object1);
Run Code Online (Sandbox Code Playgroud)
来自file.cpp的片段:
class A {
public:
A::A(uint32_t one, uint32_t two) { }
};
class B : public A {
public:
B::B(const B ©) : A(copy) { }
}
};
Run Code Online (Sandbox Code Playgroud)
头文件文件中的一个片段.
class B : public A {
public:
B(const B&);
Run Code Online (Sandbox Code Playgroud)
我试图使代码尽可能简单地进行stackoverflow.有人可以解释这里有什么问题吗?
你的B :: B(const B&)期望引用const B,但你提供的是A的实例.B从A派生并不重要; 即使每个B都是-A A,反之亦然.实际上,object1是-A,但是不是B.
为了澄清更多:如果你想要B可以从A构造,你需要提供一个带A的构造函数,如: B::B(const A& copyA): A(copyA) {}
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |