我一直在寻找这一点,我很惊讶,我没有发现任何东西。 为什么我不能继承使用基类构造函数using
在派生类中声明,并添加过载? 我使用Visual C ++ 2013,基类构造函数被忽略时,默认构造b
:
error C2512: 'B' : no appropriate default constructor available
我已经通过重新定义构造函数处理了这一点,但我不喜欢这样。 这只是一个小例子,它不会打扰我,如果我只有一个基类的构造函数。
struct A
{
A() : a(10) {}
int a;
};
struct B : A
{
using A::A;
explicit B(int a) { this->a = a; }
};
int main()
{
B b;
}