2016-12-08 37 views
1

對於我的構造函數和重載的構造函數的定義,我有:模板類,並使用重載的構造函數在C++混合參數

template <class T> Student<T>::Student(){} 
template <class T> Student<T>::Student(string sName, int sAge) { 
    m_name = sName; 
    m_age = sAge; 
} 

我越來越困惑於如何調用構造函數的重載的構造混合參數。 我的理解是,如果他們都是整數,我會做這樣的:

Student <int> newStudent; 
newStudent(10, 15); 

回答

1

Student<int>是一種類型。 Student<int> newStudent;創建該類型的變量,這意味着它是構造該對象。由於不包含參數,因此使用無參數構造函數。

newStudent(10, 15)是試圖調用該類的成員,該成員可能定義或可能不定義。

你可能想:

Student<int> newStudent("Mary", 15); 

...在可變newStudent創建Student<int>類型的對象。