【发布时间】:2020-01-09 13:26:36
【问题描述】:
当我尝试为继承的类创建多个构造函数时,我有一个错误提示:没有对 A::A() 的匹配函数调用。 我的代码如下所示:
class A{
public:
int a;
int b;
A(int i, int k) : a(i), b(k){
};
};
class B : public A{
public:
B(){
};
B(int i, int k) : A(i, k){
};
};
【问题讨论】:
-
B(){}这必须调用基类的一些构造函数。由于您没有指定在成员初始化列表中调用哪一个,它会尝试使用A(),但它不存在。 -
您的问题不在于构造函数的数量(原则上,您可以拥有任意数量的构造函数),而是您没有提供您尝试使用的构造函数。
标签: c++ class c++11 inheritance constructor