我正在尝试从两个抽象基类派生一个类。
#include <stdio.h>
class A
{
public:
virtual void Method(void) = 0;
};
class B
{
public:
virtual void Method(void) = 0;
};
class C: public A, public B
{
public:
virtual void Method(void);
};
void C::A::Method(void)
{
printf("C::A::Method\r\n");
}
void C::B::Method(void)
{
printf("C::B::Method\r\n");
}
C test;
如果我尝试编译,链接器会收到以下错误:
未定义引用`vtable for C'
如果我将C类的声明改为
class C: public A, public B
{
public:
virtual void A::Method(void);
virtual void B::Method(void);
};
编译器出现以下错误:
无法在'C'
中声明成员函数'A :: Method'无法在'C'
中声明成员函数'B :: Method'
我想要实现的是让C为抽象接口A和B提供实现。有人知道如何做对吗? 感谢。