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