c++的泛型方法,泛型类型是自定义的类
时间: 2023-08-13 22:05:28 浏览: 119
C++中的泛型方法可以使用模板来定义,其中泛型类型可以是自定义的类。例如,可以定义一个模板类来实现一个泛型方法,如下所示:
```cpp
template <typename T>
class MyArray {
public:
void printArray(T arr[], int n) {
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
};
```
上面这个例子中,我们定义了一个名为MyArray的模板类,它有一个名为printArray的泛型方法。这个泛型方法接受两个参数:一个T类型的数组arr,和一个整数n,表示数组的长度。在方法中,我们可以使用T类型来定义参数类型、局部变量类型或返回值类型。具体来说,在这个例子中,我们使用T类型来定义arr数组的元素类型,这样我们就可以在方法中使用任意类型的数组。
使用这个泛型方法时,我们需要先实例化MyArray模板类,并指定T的类型。例如,我们可以这样调用printArray方法:
```cpp
int main() {
MyArray<int> arr1;
int arr2[] = { 1, 2, 3, 4, 5 };
arr1.printArray(arr2, 5);
MyArray<string> arr3;
string arr4[] = { "hello", "world" };
arr3.printArray(arr4, 2);
return 0;
}
```
在这个例子中,我们先实例化了一个MyArray<int>对象,并调用printArray方法来打印一个整数数组。然后我们又实例化了一个MyArray<string>对象,并调用printArray方法来打印一个字符串数组。由于我们使用了模板类和泛型方法,这个代码可以适用于不同的数据类型。
阅读全文