在C++中,類模板的成員函數定義與常規類的成員函數定義非常相似。首先,在類模板聲明中,你需要為成員函數提供模板參數列表。然后,在類模板定義中,你可以像常規類一樣定義成員函數。這里有一個簡單的例子來說明如何定義類模板的成員函數:
#include <iostream>
// 類模板聲明
template <typename T>
class MyClass {
public:
// 成員函數聲明,包含模板參數列表
void printType();
};
// 類模板定義
template <typename T>
void MyClass<T>::printType() {
std::cout << "The type of the stored value is: " << typeid(T).name() << std::endl;
}
int main() {
MyClass<int> intObj; // 使用int類型實例化類模板
intObj.printType(); // 輸出:The type of the stored value is: i
MyClass<std::string> strObj; // 使用std::string類型實例化類模板
strObj.printType(); // 輸出:The type of the stored value is: NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
return 0;
}
在這個例子中,我們定義了一個名為MyClass
的類模板,它接受一個類型參數T
。我們為這個類模板定義了一個成員函數printType()
,它打印存儲值的類型。在main()
函數中,我們使用int
和std::string
類型實例化了MyClass
類模板,并調用了printType()
成員函數。