定义一个s 的实例s* pS ;if( 条件)
  pS = new s1 ;
else
  pS = new s2 ;.....

解决方案 »

  1.   

    对,用virtual 函数来实现,可以让C语言的switch (...) case 下岗!
      

  2.   

    s* pS ;
    if(pS!=NULL)
    {
    delete pS;
    pS=NULL;
    }
    if( 条件)
      pS = new s1 ;
    else
      pS = new s2 ;
      

  3.   

    在C++中,编译时有两中方式,一种是在编译时已经知道了类的实例,为前期绑定
    另一种为后期绑定,在编译时并不知道实例,要到运行时才知道,为后期绑定,
    后期绑定所用到的基类设计成virtual ,他主要用到的机制是虚拟表,这方面的介绍很多,可以去看!
      

  4.   

    if (i)
          CPtrArray m_Array;
    else
          CObArray m_Array;