我有以下抽象基类SettingsInterface,我将其用作接口:
class SettingsInterface
{
public:
virtual void Refresh() = 0;
virtual void Update() = 0;
virtual void OnConnect() = 0;
virtual void OnDisconnect() = 0;
};
我试图实现这个接口在我的类下面,继承自TFrame。TFrame继承自另一个类,该类也有一个名为Update的虚方法。
class DebugSettingsFrame : public TFrame, public SettingsInterface
{
//a bunch of IDE-managed components - left out for brevity
public:
virtual void Refresh();
virtual void Update();
virtual void OnConnect();
virtual void OnDisconnect();
};
当我编译这个时,我得到错误的虚拟函数DebugSettingsFrame::Update()与基类'TWinControl'冲突。我被这事难倒了。我如何解决这个问题,而不改变我的接口的方法定义,更新,到别的东西?
编辑-后续:
所以c++没有一个类似于c#的结构,你可以显式地实现具有相同定义的接口方法?
谢谢!
试试这样做(从代码中我不能确切地说):
DebugSettingsFrame:: TFrame::更新();
::是作用域解析操作符。您应该能够精确地指定您正在调用的函数的哪个版本。
但是,请注意,这是设计可能变得过于复杂的征兆。