簡體   English   中英

如何解決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'沖突。 我對此很tom腳。 如何解決此問題而又不將接口的方法定義Update更改為其他內容?

編輯-后續:

因此,C ++沒有類似於C#的構造,您可以在其中顯式實現具有相同定義的接口方法?

謝謝!

嘗試類似的事情(根據我無法確切說出的代碼):

DebugSettingsFrame :: TFrame :: Update();

::是作用域解析運算符。 您應該能夠精確指定要調用的函數的版本。

但是,請注意,這是設計的征兆,可能會變得過於復雜。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM