在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()
成员函数。