rtti

    2熱度

    1回答

    我對C++中的RTTI機制有一些疑惑。 假設中有A類和從A繼承現在考慮下面的代碼B類: B* b = new B(); A* a = dynamic_cast<A*>(b); 我知道,多態類的虛擬方法有虛表和vptr的的,但我認爲指針只提供有關虛擬功能的信息。程序如何在運行時知道b的類型,使用vptr和vtables?

    0熱度

    1回答

    我正在使用VS2010將用C++編寫的現有Mac應用程序移植到Windows。以下代碼行: T var_max; var_max = std::numeric_limits<typeof(var_max)>::max(); 給定一個變量,確定該變量的數據類型的最大值。 如何在VC++中編寫等效代碼?我嘗試使用typeid來確定數據類型,但它只給出一個字符串,不能在模板中使用。

    4熱度

    1回答

    我有一個TObject引用了一個未知類的實例。我如何調用這個未知類的構造函數來創建它的另一個實例?我知道德爾福有RTTI,但不清楚如何使用它。

    0熱度

    1回答

    我想知道是否有辦法獲取已聲明但未實例化的TList的元素的類型。我可以捕獲這樣的對象屬性的類: MyList: TList<TMyObject> read FMyList; MyRTTIProperty: TRttiProperty; NewObject: TObject; PropertyClass: TClass; MyRttiProperty := MyRttiType.Get

    0熱度

    1回答

    我可以得到與RTTI和地址(字段)的字段相同的指針? 如: TSomeClass 私人 FSomeField:整數; ... 1)MyPointer =地址(FSomeField)>>從SameField $ 12345 2)RTTI指針>> $ 12345

    1熱度

    2回答

    我看到的代碼塊: 什麼問號 public abstract List<Class<? extends Pet>> types(); (之前這表明,類狗和貓是從類繼承寵物)?是指在這裏?

    1熱度

    1回答

    我在我的類UserController中有一個過程,根據它的ID刪除類TUser的對象。我想要使​​GenericController類能夠與任何其他類做到這一點。這是我的程序: procedure TUserController.DeleteUser(User: TUser); begin if not FManager.IsAttached(User) then User

    1熱度

    1回答

    我需要訪問,記錄屬性,並設置/獲取此屬性值。 首先,我想訪問屬性。但我不能。 出了什麼問題? 版本:Delphi XE6。 示例代碼: type TmyRecord = record private Str : String; public property StrProp :String read Str; end; proced

    3熱度

    1回答

    考慮下面的例子: type TTestClass = class public procedure method1; virtual; end; TForm2 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender

    0熱度

    1回答

    如果我有A類和B類,其子類的,應該typeid(x),給予或B型的類型,如果x由下式給出: A *x = new B(); 在我的測試中我得到的類型A - 這不是很有用 - 但我不確定這是由於C++的工作原理,還是由於編譯器設置?