在C++中,模板類的初始化和普通類的初始化有些許不同。模板類的初始化需要在使用時指定模板參數類型,即在實例化模板類對象時將模板參數傳遞給類模板。例如:
template <typename T>
class MyTemplate {
public:
MyTemplate(T value) : m_value(value) {}
void printValue() {
std::cout << "Value: " << m_value << std::endl;
}
private:
T m_value;
};
int main() {
MyTemplate<int> t1(5);
t1.printValue();
MyTemplate<double> t2(3.14);
t2.printValue();
return 0;
}
在上面的例子中,我們定義了一個模板類MyTemplate
,它包含一個成員變量m_value
和一個構造函數來初始化這個成員變量。在main
函數中,我們分別實例化了兩個不同類型的MyTemplate
對象,一個是int
類型的,一個是double
類型的,并調用了printValue
方法來輸出不同類型對象的值。
需要注意的是,模板類的成員函數通常要定義在類的聲明中,因為編譯器需要在實例化模板類時生成對應類型的成員函數。如果將成員函數的定義放在類的外部,需要在模板類外部也指明模板參數類型。