如何在c++ Builder中解决接口方法和基类方法名称冲突?
How can I resolve interface method and base class method name conflict in C++ Builder?
我有以下抽象基类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::更新();
::是作用域解析操作符。您应该能够精确地指定您正在调用的函数的哪个版本。
但是,请注意,这是设计可能变得过于复杂的征兆。
相关文章:
- 使用子类覆盖基类中定义的函数
- 如何基于模板化类的基类专门化成员函数
- 永久更改派生类的基类?
- C++初始化之前派生类调用基类的方法
- 如何从派生类访问基类中的重载运算符?
- CRTP 如何使派生类具有基类的容器
- 如何删除派生类中基类对象的新对象
- 是否可以从派生类返回基类的实例?
- C ++中有没有办法让派生类重写基类静态方法
- C++多态性模板类:调用基类方法而不是派生类
- 从派生类实现基类构造函数专用化的替代方法是什么
- C++-从方法基类调用派生类中的重写方法
- 从基类调用基类中不存在的派生方法
- c++中没有从派生类调用基类方法的匹配函数
- C++派生类调用基类方法给出了分段错误
- 子类调用基类构造函数,然后使用子类Arduino c++中基类的实例方法
- 通过多级继承从模板子类调用基类的模板方法
- 如果派生类重写基类方法,为什么要调用基类方法
- 在c++中是否可以从派生类调用基类中的方法?
- 需要从c++中的派生类调用基类析构函数方法