vtable

    3熱度

    4回答

    我試圖使用虛擬方法表的索引 類調​​用函數...假設我們有下面的代碼: class Base { public: Base() {} virtual ~Base() {} virtual Base* call_func(unsigned int func_number) { // Some way to call f_n } p

    3熱度

    2回答

    未定義的引用我的問題已從我發佈的另一個更改。我開始使用多個文件,並決定將其全部放在一個main.cpp文件中,以便使其工作。 main.cpp中: #include <iostream> using namespace std; class arrayListType { public: bool isEmpty() ; bool isFull() ;

    2熱度

    2回答

    如果Base是一個基類並派生了一個派生類,並且有25個Derived實例,那麼vtables是如何設置爲可供所有實例訪問的?他們在哪裏加載內存?

    4熱度

    2回答

    是否可以從C#調用函數到結構中的非託管函數(通過VTable)。 例如,我在進程中掛鉤一個應用程序,並且我正在爲每個類(應用程序)重新創建結構。 public struct SomeStruct { [FieldOffset(0x00)] public IntPtr * VTable; [FieldOffset(0x10)] public uint Som

    1熱度

    2回答

    有人問我在採訪這個問題。以下程序創建了多少個虛擬表,以及每種情況下都有多少虛擬表。 #include <iostream> using namespace std; class A { virtual void func1() { cout << "0 " <<endl; } virtual void func2() { cout << "1 " <<endl

    3熱度

    3回答

    我有一個關於虛擬函數調用優化的問題。我已閱讀的地方(而問題是,現在我無法找到文章),這可能是通過使用一個類似的結構來優化掉V-查表: // Base.h class Base { public: virtual void Foo() = 0; }; // Concrete.h class Concrete : public Base { public: vir

    0熱度

    2回答

    在以下code: #include <iostream> using namespace std; class A { public: A() { cout << " A constructor \n"; sum(2,4); } virtual int sum(int a, int b){ cout << "Base

    -1熱度

    2回答

    我必須繼承具有5個虛函數的抽象基類。如果我沒有實現這5個函數,我會得到「如果未實現,爲抽象類類型分配一個對象」。 當我宣佈在派生類中實現我得到 「爲i386硬件架構未定義的符號: ‘虛函數表的debugDrawer’,從引用:在debugDrawer.o 注意 debugDrawer :: debugDrawer():缺少虛函數表通常意味着第一個非內聯虛擬成員函數沒有定義。「從子彈物理庫 類btI

    4熱度

    1回答

    雖然還有其他關於堆棧溢出的問題,它們處理'未定義引用vtable'錯誤消息。下面的代碼要麼編譯,要麼不編譯,這取決於無參數構造函數C()是否在線實現。我知道成員函數m()應該是純虛擬的,這將是修正問題的正確改變。我感到困惑的是,它可以用一種明顯無關的變化進行編譯。 下面的代碼不能用g ++(ubuntu 64位上的4.6.3)進行編譯,併產生預期的'未定義的引用vtable for C'消息(對於

    5熱度

    2回答

    我想知道是否有任何C++大師可以對這種奇怪的情況有所瞭解。 Box2D物理引擎附帶的一個例子是「純虛函數調用」的消息,但只有某個編譯器(並且只在發佈版本中)纔會崩潰。 Box2D的,因爲你可能知道的代碼一個非常堅實的一塊,所以我想這可能是與編譯器有問題,特別是考慮到它僅與此特定的編譯器發生。我在Windows7上使用mingw32: > gcc.exe --version gcc version