rtti

    2熱度

    2回答

    假設有兩個類別,即Pet和Dog。 Pet類是Dog類的超類。 Ques01: 當我編碼如下,發生編譯錯誤:Type mismatch: cannot convert from Class<capture#2-of ? super Dog> to Class<Pet> Class<Pet> c1 = Dog.class.getSuperclass(); 它是這樣的: Class<? super

    6熱度

    1回答

    我正在嘗試使用TVirtualInterface。我主要試圖遵循Embarcadero doc wiki和Nick Hodges' blog的示例。 但是,我想要做的是與標準示例有點不同。 我已儘量簡化以下示例代碼,以說明我正在嘗試執行的操作。我遺漏了明顯的驗證和錯誤處理代碼。 program VirtualInterfaceTest; {$APPTYPE CONSOLE} {$R *.r

    2熱度

    2回答

    我是一位研究高級C++主題的新手,所以如果問題聽起來太明顯,請原諒我。 我一直在閱讀有關各種方法,通過它們我們可以在運行時以C++(通常稱爲RTTI)獲取對象類型的信息。 但是,我很困惑它是如何工作的。 我讀過一些RTTI解釋時經常提到的東西。其中之一是動態使用dynamic_cast <>將對象強制轉換爲其他對象。另一個是在運行時使用typeid來確定對象的類型。 我想知道使用typeid是否是

    2熱度

    1回答

    我在haxe nme中使用了rtti。它適用於定位閃光燈,但編譯到cpp目標時收到以下錯誤。 錯誤C2039: '__rtti':不是 'CLASS_OBJ' 我這樣做... public function doSomething(type:Class<Dynamic>):Void { var typeInfo:String = untyped type.__rtti; } 我也試

    5熱度

    1回答

    我有B級從A. class A { }; class B : public A { }; 我有三個對象繼承的對象類型。 A* a = new A(); A* a2 = new B(); B* b = new B(); 我想如果檢查一個是類型A的對象,a2爲B型(未A)的目的,以及b是類型B的對象 我試圖輸入的比較,但它並沒有給我正確的答案。 cout << (typeid(

    4熱度

    1回答

    我發現了Delphi的擴展RTTI特性,我認爲這是一個奇怪的疏忽(可能是故意的)。 我想轉儲一個記錄類型中的所有領域,其中有大約1500個不同的領域。是的,認真。 它們中的一些類型real48的,有些是ShortString短,對於這兩個,看來的FieldType是零這些類型在運行時: function TRttiField.GetValue(Instance: Pointer): TValue;

    6熱度

    1回答

    可以說我有一個樣本類幫手 TSampleClassHelper = class helper for TSampleClass public procedure SomeHelper; end; 我做了以下內容: var obj :TSampleClass; begin obj:=TSampleClass.Create; obj.SomeHelpe

    0熱度

    2回答

    我想用Python的方式在C++ 11元組中實現一個簡單的樹。在Python中,我們可以使用type(obj)來檢查運行時對象類型,並將具有不同類型的對象傳遞給一個函數,我已經爲calc()編寫了僞代碼,如何在C++中執行它?我嘗試打印typeid(child1).name()和typeid(tree).name(),他們是'St5tupleIIciiEE'和'St5tupleIIcS_IIcii

    5熱度

    3回答

    我的問題是什麼時候如何在運行時加載類信息? 當有人打電話instanceof是否被認爲是RTTI或反射?或者這取決於實際情況?

    0熱度

    1回答

    我面臨的任務是允許用戶使用啓用了RTTI的已編譯類定義表達式。讓我以一種簡單的方式來說明。 TAnimal = class(TPersistent) private fWeight : Double; fHeight : Double; fName : string; published property Weight : Double read fWe