virtual-inheritance

    1熱度

    4回答

    我目前正在研究一個C++項目,其中我有一個稍後實現的抽象接口。該接口也有一個實現的方法,我的實現不會覆蓋。 我的問題是,當使用我的實現時,編譯器(MSVC)沒有看到接口方法。是什麼導致了這種情況,我該如何解決它? 代碼如下。 #include <string> #include <vector> using std::string; class A { public:

    3熱度

    7回答

    我試圖從舊的類中派生出新的類。基類的聲明看起來是這樣的: class Driver : public Plugin, public CmdObject { protected: Driver(); public: static Driver* GetInstance(); virtual Engine& GetEngine(); public: /

    5熱度

    4回答

    我試圖在保留現有功能的同時重構一些代碼。我無法將指向對象的指針轉換爲基礎接口,然後再派生派生類。在某些情況下,該程序使用工廠對象來創建這些對象的實例。 以下是我正在使用的類的一些示例。 // This is the one I'm working with now that is causing all the trouble. // Some, but not all methods in N

    2熱度

    1回答

    我的項目中有一個奇怪的問題。我有一個繼承自基類的類(它再次從另一個基類繼承)並重寫一個函數。但是,當調用該函數時,它永遠不會調用覆蓋函數,而是調用基函數。 但是,當我重寫中間類中的函數時,它被調用。但是,這是令人困惑:讓我們用繪圖:) LIB GuiShared 類bScreen 虛函數InitializeRoc LIB TigerControlRoot解釋 類bTigerScreen 覆蓋功能I

    14熱度

    2回答

    有沒有辦法++定義一個類Foo用C 使 我可以從它 我不能「鑽石繼承」從它 繼承 Ie class Cat: public Foo{} // okay class Dog: public Foo{} // okay class Weird: public Cat, public Dog {} // I want this to throw a compiler error

    55熱度

    6回答

    class A { public: void eat(){ cout<<"A";} }; class B: virtual public A { public: void eat(){ cout<<"B";} }; class C: virtual public A { public: void eat(){ cout<<"C";} }; class D: public B,C