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++的工作原理,还是由于编译器设置?