[英]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'沖突。 我對此很tom腳。 如何解決此問題而又不將接口的方法定義Update更改為其他內容?
編輯-后續:
因此,C ++沒有類似於C#的構造,您可以在其中顯式實現具有相同定義的接口方法?
謝謝!
嘗試類似的事情(根據我無法確切說出的代碼):
DebugSettingsFrame :: TFrame :: Update();
::是作用域解析運算符。 您應該能夠精確指定要調用的函數的版本。
但是,請注意,這是設計的征兆,可能會變得過於復雜。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.