Eclipse 在“new Listener()”上报告了一个错误,尽管它使用 g++ 编译和执行。请注意,这些类的数据多于此处列出的数据,因为它已被缩减,因此删除看似空的类不是一种选择。有什么我可以添加/更改以使 Eclipse 和 g++ 都高兴的东西。不过,我将无法更改 Base* 类。
class BaseIntf {
public:
virtual ~BaseIntf() {}
virtual void foo() = 0;
};
class BaseImpl: public virtual BaseIntf {
public:
virtual void foo() {}
};
class ListenerBaseInft: public virtual BaseIntf {
};
class Listener: public ListenerBaseInft, public BaseImpl {
};
int main(int argc, char *argv[]) {
// Eclipse:
// The type 'Listener' must implement the inherited pure virtual method 'BaseIntf::foo'
Listener* listener = new Listener();
listener->foo();
return 0;
}