template <typename T> 
class bizobjectpool
{
private:
      T *m_p;
public:
    bizobjectpool();
};template<> bizobjectpool<T>::bizobjectpool()
{
    m_p = new T();
}编译出错,提示error C2512: “T”: 没有合适的默认构造函数可用。另外我如果希望typename T都是从bizpooledobject类继承的,应该如何写?谢谢!

解决方案 »

  1.   

    template<> bizobjectpool<T>::bizobjectpool()
    应该是:
    bizobjectpool<T>::bizobjectpool()吧
      

  2.   

    如果希望typename T都是从bizpooledobject类继承的,可以不使用模板类,直接把 T *m_p;
    改为 bizpooledobject *m_p;
      

  3.   

    指针可以改成那样,但是动态创建怎么办呢?总不能写new bizpooledobject()?
      

  4.   

    template <typename T>  
    class bizobjectpool
    {
    private:
    T *m_p;
    public:
    bizobjectpool()
    {
    m_p = new T;
    }
    };