virtual-inheritance

    5熱度

    3回答

    我有一個鑽石的問題看起來是這樣的: __ A / |\ | B | \ v|/v v\|v \v B2 B3 C \v /v / B4 / \ / D 我試過很多方法,使最佳的虛擬繼承得到沒有重複,但我無法找到一個解決方案。 A類包含一個位置。下面是一個輸出示例: Call: A() position pointer is: 0x2203be8 C

    1熱度

    1回答

    在javascript中欲實現如下: 類A(陣列) - > B類(EntityContainer相關) - >類C(EntityList) 在編碼: function EntityContainer() { ... } EntityContainer.prototype = new Array; EntityContainer.prototype.constructor = En

    1熱度

    1回答

    我希望你能幫助我解決以下問題。 我正在嘗試創建一個靈活的接口系統並遇到問題。 這是相關代碼: // Interface 1 // this: virtual f_a // -> abstract struct I_A abstract { virtual void f_a() = 0; }; // Interface 2 // I_A : virtual f_a /

    13熱度

    2回答

    可能重複: How do you declare an interface in C++? Interface as in java in c++? 我是一個Java程序員學習C++,我想知道是否有類似的東西在C++ Java接口,即類,其他類可以實現/擴展多個。 謝謝。 p.s.告訴我,如果我做錯了什麼,請在這裏新建一個。

    4熱度

    2回答

    class IA { public: virtual void a() = 0; }; class A: virtual public IA { public: virtual void a() { } }; class IB: virtual public IA { public: virtual void b() = 0

    7熱度

    2回答

    我理解虛擬繼承的概念,但我無法在任何地方找到答案。假設您有繼承B類和C類的D類.B和C都繼承了A類。因此,您可以讓B和C實際上繼承A以避免兩個A實例。但是,您是否必須在B和C兩處指定虛擬繼承或者它是否已經創建了A的一個實例,如果其中一個虛擬繼承A而另一個不是? 感謝

    1熱度

    4回答

    雖然與繼承玩耍,正好試試這個: class A { int i; }; class B : virtual public A { int j; }; class C : public B { int k; }; int main() { std::cout<<sizeof(C)/sizeof(int); return 0; } 這給了我輸出6 雖然下面

    1熱度

    3回答

    (我搜索和閱讀直通這裏的金剛石和虛擬繼承問題,但找不到答案。我的想法是,這種情況有點反常,我。願意接受的想法,我的要求是有點不同。另一方面,我想這應該在一個「好」的方式是可行的) 的情況和要求: 我有一個C++類我無法控制的圖書館,以及我無法改變的圖書館。它定義了一個Window類。 Window類有一個受保護的成員(說:handle),無法以其他方式訪問,派生類將用於使用。 Window定義了數

    1熱度

    1回答

    我想重建我的小型3D引擎,它非常小,因此我只將所有文件放在一個項目中。 現在,我想用接口重構它,所以我可以將不同的模塊分散到不同的項目中,並將它們構建爲一個dll。當我這樣做時,我在框架代碼的基本設計中遇到了很多困難。 我想設計一個我的小型引擎的「對象層次結構」,它是在以前的工作中實現的。例如: Object Component SceneComponent StaticMeshCompon

    7熱度

    1回答

    我在C++中使用具有多個虛擬繼承的可變參數模板來將類型聚合到單個結構定義中。 下面是結構的樣本集: struct meas { int i; }; struct meas2 : public virtual meas { int j; }; struct meas3 : public virtual meas { int k; }; 然後我聚合這些使用多個虛擬繼承: template <t