假如我有若干个类CAaa,CBbb,CCcc都是从基类CBase派生的。
现在我要另外做个类CHello含模板,模板代替的是CAaa,CBbb,CCcc的一个。
CHello会根据模板new出一个CBase的派生类,并调用CBase中定义的虚函数。请问是否可以实现?如何实现?

解决方案 »

  1.   

    template<class T>
    class CHello : public T
    {
    public:
      CBase* Create()
      {
        return new T;
      }
    }CHello<CAaa> helloA;
    CHello<CBbb> helloB;
    CHello<CCcc> helloC;CBase* p = helloA.Create();
      

  2.   

    这个 : public T 可以不要,我看错你的意思了
      

  3.   

    Google一下C++ 类模板的用法
      

  4.   

    没见过这样的继承啊。楼主是不是想要动态创建(根据类名创建对象),是的话看下 深入浅出MFC 第三章。