virtual-inheritance

    1熱度

    2回答

    在C++中可以從父函數調用子函數。 我們舉一個例子:父類定義一個函數(解析)一般工作流。工作流然後調用代表流的一部分的不同方法(parseElementA)。這些函數可以被子類覆蓋,如果不是作爲父類的一部分的standart函數,則應該被使用。 我的問題是:我創建一個子對象並執行工作流功能(解析)。當覆蓋函數(parseElementA)在工作流函數中被調用時,它會從父項調用函數,而不是從子項調用

    13熱度

    1回答

    什麼是C++ 98/C++ 03標準和C++ 0x未來標準的確切規則dominance in virtual inheritance? 我並不是要求特定的段落,雖然我也在問(第10節中的某處,我猜)。 我也在問清楚標準的解釋,標準的後果。

    4熱度

    3回答

    struct B { int i; }; struct D1 : virtual B {}; struct D2 : B {}; // <-- not virtual struct DD : D1, D2 {}; 上面已經編碼,還是編譯器要求D2也成爲virtual: DD d; d.i = 0; // error: request for member `i' is ambiguou

    2熱度

    5回答

    考慮以下上溯造型到基類: #include <iostream> #include <string> using namespace std; class A { public: A(const char* sName) //conversion constructor : _sName(sName) {cout<<"(1)"<<endl;} ; A(

    23熱度

    6回答

    最近遇到了一個新的C++鏈接器錯誤。 libfoo.so: undefined reference to `VTT for Foo' libfoo.so: undefined reference to `vtable for Foo' 我意識到錯誤並解決了我的問題,但我仍然有一個嘮叨的問題:VTT到底是什麼? 旁白:對於那些有興趣的人,當你忘記定義在類中聲明的第一個虛函數時會出現問題。 vt

    32熱度

    1回答

    我試圖實現一個實現了很多接口的相當大的對象。其中一些接口是純虛擬的。我可能在鑽石繼承方面存在問題。 Visual Studio報告了C4250 ('class1' : inherits 'class2::member' via dominance)的警告。首先,所有這些類都是按照它應該的那樣實際繼承的。以下是導致此問題的部分類設計。 A B C \ /\ / \ / \ /

    12熱度

    7回答

    我有一個基類和派生的一個,我想改變基本功能,同時保持它們靜態,因爲它們應該被傳遞給靜態的其他功能。 我該怎麼做?

    6熱度

    1回答

    在這個例子中,我對應用多態性有一些麻煩。這個問題類似於我的最後一個問題 C++, virtual inheritance, strange abstract class + clone problem 有3個抽象類: class A { public: virtual A * copy() const = 0; virtual ~A() = 0; }; A::~A()

    3熱度

    2回答

    有一個little related question。但話題完全不同。 現在,一個概念是關於功能分辨率和另一個是關於class分辨率?我想知道如果他們使用相同的vtable(at least in gcc-4.5)怎麼可能?這是一個與編譯器相關的術語嗎? 我知道這可能是一個基本的愚蠢問題,但我從來沒有想過它。

    1熱度

    1回答

    這個問題來自另一個類似的問題。有時我必須處理這種情況。 你知道,如果在面向對象編程中存在一個特別的名字,對於已申報virtual一個初步的方法,那就是故意不abstract,但是,什麼也不做,或者沒有任何代碼,但,也許叫? 這個例子是僞代碼,但是,適用於任何O.O.編程語言: public class MyBaseClass { public abstract virtual void