我有一個由2個子類繼承的基類。這個子類也繼承了構造函數。但是如果我嘗試用類B的副本構造類A的實例,它將不起作用(編譯錯誤)。用繼承構造函數初始化姐妹類
class base {
int a_;
public:
base(int x)
: a_(x) {}
base(base const& cpy)
: a_(cpy.a_) {}
};
class A : public base {
public:
using base::base;
};
class B : public base {
public:
using base::base;
};
int main() {
A a(123);
B b(a);
return 0;
}
正如你所看到的here。
但是,如果我插入一個構造函數與基作爲參數類它的工作原理:
class A : public base {
public:
using base::base;
A(base const& cpy)
: base(cpy) {}
};
這不是插入一個構造基本問題。我的問題是爲什麼繼承的構造函數無法正常工作。
是的,我刪除了我的評論,因爲它引起了我的注意,它「爲我工作」的唯一原因是由於MVP。 – Borgleader