【发布时间】:2017-04-12 00:30:14
【问题描述】:
我有以下接口和类
public interface IBase
{
virtual void SomeBaseMethod()=0;
}
public interface IDerived : IBase
{
virtual void SomeOtherMethod()=0;
}
public class base: public IBase
{
void SomeBaseMethod(){};
}
public class derived: public base, public IDerived
{
void SomeBaseMethod(){};
void SomeOtherMethod(){};
}
在派生类中,我必须重复“void SomeBaseMethod(){};”,这已经在我的类库中实现。否则我会得到编译错误。是否可以不重复'void SomeBaseMethod(){};'在我的类派生?
【问题讨论】:
-
您遇到了diamond inheritance 问题。
-
哪个版本的 C++ 有关键字
interface。看起来更像 Java。 -
@ThomasMatthews 这不是标准 C++,但它是 extension in Visual Studio(我不鼓励使用)