2013-05-13 75 views
2

我發佈了一個非常類似的question並得到了我的答案。我現在面臨與構造函數相同的問題.. 如何寫一個T2的構造函數?構造函數中的模板類成員的繼承

template<typename T> 
class T1 
{ 
    public: 
     T1(int t) : m_t(t) {} 

    protected: 
    int m_t; 
}; 

template<typename T> 
class T2 : public T1<T> 
{ 
    public: 
     T2(int t) : m_t(t) {} // error 

     int get() 
     { return this->m_t; } 

    protected: 
}; 

回答

9

您需要調用基類的構造函數初始化列表爲T2

T2(int t) : T1<T>(t) {} 

T2<T>的構造函數會調用T1<T>的構造,這將初始化T1<T>::m_t

+0

謝謝!我應該想到這一點.. – user2287453 2013-05-13 14:49:20