在C++中,可以使用模板類來實現泛型編程
#include <iostream>
// 定義一個模板類
template <typename T>
class MyClass {
public:
// 定義一個模板成員函數
template <typename U>
void printType(const U& value) {
std::cout << "Value: " << value << ", type: " << typeid(value).name() << std::endl;
}
};
int main() {
MyClass<int> myInt;
myInt.printType(42); // 輸出: Value: 42, type: i (表示int類型)
MyClass<std::string> 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
函數來打印這些值的類型信息。