类A,B,C均 继承于CObject
声明一个CObjectArry变量myArray
myArray.Add(A对象)
myArray.Add(B对象)
myArray.Add(C对象)
可以这样吗?如果可以不在派生类中设置表明对象的标志
用myArray.GetAt( index )得到的对象怎么知道是A,B 还是C的,CObjectArry怎样组织内存的呢??

解决方案 »

  1.   

    //好象是可以的:
    A *a = new A;
    B *b = new B;
    C *c = new C;
    myArray.Add(a);
    myArray.Add(b);
    myArray.Add(c);
    //可以通过判断IsKindOf的返回值,判断是那个类:
    myArray.GetAt(index)->IsKindOf(RUNTIME_CLASS(A))
    myArray.GetAt(index)->IsKindOf(RUNTIME_CLASS(B))
    myArray.GetAt(index)->IsKindOf(RUNTIME_CLASS(C))
      

  2.   

    可以,可以用CObject::IsKindOf来判断。
      

  3.   

    CObjectArry怎样组织内存的呢??多谢各位