CRuntimeClass* CRuntimeClass::pFirstClass = NULL;这个前面的CRuntimeClass* 到底有什么用呢?请好人指导!!!

解决方案 »

  1.   

    CAge a(21);
    CRuntimeClass* prt = a.GetRuntimeClass();
    ASSERT( strcmp( prt->m_lpszClassName, "CAge" )  == 0 );
      

  2.   

    运行时类,依照侯俊杰先生的“深入浅出MFC“的上面的,每个类在建立以后使用一定的宏建立一张类的“类别型录网“,它是一个数据结构,里面定义着内存中的情况;它的父类;后续指针等信息。可以根据这张网在运行时去查找类的归属情况(属于哪个类,继承与哪里等),这是“类别型录网“的指针。
      

  3.   

    struct CRuntimeClass
    {  
        LPCSTR  m_lpszClassName;
        int  m_nObjectSize;
        .................
        .................}
    这是一个结构
    它与DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC这两个宏有关。
    具体你最好看一下,深入浅出MFC。
      

  4.   

    关于CRuntimeClass* CRuntimeClass::pFirstClass = NULL;
    就是<<深入浅出MFC>>上的我不明白如果是设初始值为什么不直接
    CRuntimeClass::pFirstClass = NULL;
    而要在前面加CRuntimeClass* 呢?
      

  5.   

    CRuntimeClass::pFirstClass = NULL; 那麽它的类型是什麽呢??
    CRuntimeClass*是它的类型,指针类型。