我从两个类继承。这两个类都包含相同的函数名,但是一个正在实现,一个是纯虚函数。有什么办法可以使用已经实施的方法?
#include <iostream>
using namespace std;
class BaseA {
public:
void DoSomething() {
value += 1;
std::cout<<"DoSomething():"<< value<<endl;
}
int value;
};
class BaseB {
public:
virtual void DoSomething() =0;
};
class Derived : public BaseA, public BaseB {
public:
Derived() { value = 0; }
// Compiler complains DoSomething() is not implemented.
// Can we just use BaseA.DoSomething()?
};
int main() {
Derived* obj = new Derived();
obj->DoSomething();
}
答案 0 :(得分:0)
您需要定义一个函数,因为DoSomething
是BaseB
类中的纯虚函数。但是您可以在实现中的DoSomething
类中调用BaseA
:
void DoSomething(){
BaseA::DoSomething();
}