typeid和MFC的运行时类型识别(CRuntimeClass等)
哪个好呀?
理由是什么呀?

解决方案 »

  1.   

    typeid更通用,编译器支持
    CRuntimeClass只在MFC中使用,需要做额外的工作来支持.
    无所谓好不好,合适就好.从CObject继承下来的,支持DECLARE_DYNAMIC就可以使用CRuntimeClass
      

  2.   

    typeid 是C++ 标准的一部分,理论上只要能用C++ 的地方就能用 typeid CRuntimeClass 是 MFC 的,只能在 VC 里面用,也就是申请了一些内存,把类的信息硬编码进去, 但存储的信息比 typeid 多一些, 比如 IsKindOf 可以用来判断 是否是另一个类的子类,
    而 标准c++ 是不支持这种判断的
      

  3.   

    typeid虽然是标准c++的一部分,但各个编译器对返回形式标准不一CRuntimeClass利用宏实现,内容更多,理论上在不同编译器下没有差异。但需要更多的内存。个人感觉后者更实用