在C++中,可以使用模板类来实现泛型编程
#include
// 定义一个模板类
template
class MyClass {
public:
// 定义一个模板成员函数
template
void printType(const U& value) {
std::cout << "Value: " << value << ", type: " << typeid(value).name() << std::endl;
}
};
int main() {
MyClass myInt;
myInt.printType(42); // 输出: Value: 42, type: i (表示int类型)
MyClass myString;
myString.printType("Hello, World!"); // 输出: Value: Hello, World!, type: NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (表示std::string类型)
return 0;
}
在这个示例中,我们定义了一个名为MyClass
的模板类,它接受一个类型参数T
。然后,我们在类中定义了一个名为printType
的模板成员函数,它接受一个类型参数U
。这个成员函数接受一个U
类型的值,并输出其值和类型信息。
在main
函数中,我们创建了两个MyClass
的实例,一个用于int
类型,另一个用于std::string
类型。然后,我们调用printType
函数来打印这些值的类型信息。