我试图找出一个有趣的多继承问题.
祖父母是一个有多种方法的接口类:
class A
{
public:
virtual int foo() = 0;
virtual int bar() = 0;
};
Run Code Online (Sandbox Code Playgroud)
然后有部分完成此接口的抽象类.
class B : public A
{
public:
int foo() { return 0;}
};
class C : public A
{
public:
int bar() { return 1;}
};
Run Code Online (Sandbox Code Playgroud)
我想要使用的类继承自两个父类,并指定通过using指令应该来自哪个方法:
class D : public B, public C
{
public:
using B::foo;
using C::bar;
};
Run Code Online (Sandbox Code Playgroud)
当我尝试实例化DI获取错误以尝试实例化抽象类时.
int main()
{
D d; //<-- Error cannot instantiate abstract class.
int test = d.foo();
int test2 = d.bar();
return …Run Code Online (Sandbox Code Playgroud)