c++ 模板类的定义和如何使用
时间: 2023-08-10 07:33:03 浏览: 57
C++模板类是一种通用的类,它允许您定义一种可以适用于多种数据类型的类。模板类定义的语法如下:
```
template <class T>
class ClassName {
// class definition
};
```
其中,`T` 是一个占位符,它可以被实际的数据类型替换。例如,如果您想要创建一个可以用于存储整数或浮点数的类,您可以这样定义:
```
template <class T>
class MyArray {
public:
MyArray(int size);
T& operator[](int index);
private:
T* data;
int size;
};
template <class T>
MyArray<T>::MyArray(int size) {
data = new T[size];
this->size = size;
}
template <class T>
T& MyArray<T>::operator[](int index) {
return data[index];
}
```
在上面的代码中,`MyArray` 是一个模板类,`T` 是一个占位符,可以被实际的数据类型替换。在类定义中,我们使用了 `T` 来声明成员变量 `data` 和 `size`,以及成员函数 `MyArray` 和 `operator[]`。
要使用模板类,您需要在创建类对象时指定实际的数据类型。例如,要创建一个 `MyArray` 对象来存储整数,可以这样写:
```
MyArray<int> arr(10);
```
在上面的代码中,`<int>` 告诉编译器使用 `int` 数据类型替换 `T`。这将创建一个可以存储 10 个整数的 `MyArray` 对象。要访问数组元素,可以使用下标运算符 `[]`,如下所示:
```
arr[0] = 5;
int x = arr[0];
```
在上面的代码中,`arr[0] = 5` 将整数 5 存储在数组的第一个元素中,`int x = arr[0]` 将数组的第一个元素赋值给变量 `x`。