类模版
时间: 2023-07-31 08:11:33 浏览: 48
C++ 中的类模板是一种通用的类模板,可以在不指定具体类型的情况下定义类,使其适用于多种不同的数据类型。类模板使用关键字 template 和一个或多个类型参数来定义。例如,下面是一个简单的类模板:
```
template <typename T>
class MyStack {
private:
T* data;
int top;
public:
MyStack() {
data = new T[100];
top = -1;
}
void push(T value) {
data[++top] = value;
}
T pop() {
return data[top--];
}
};
```
这个类模板定义了一个名为 MyStack 的类,它可以用于存储任意类型的数据。该类包含一个私有的数组 data 以及一个整型变量 top,用于实现栈的基本操作。在使用时,可以指定不同的数据类型,例如:
```
MyStack<int> intStack;
intStack.push(1);
intStack.push(2);
int a = intStack.pop(); // a 的值为 2
MyStack<std::string> strStack;
strStack.push("hello");
strStack.push("world");
std::string b = strStack.pop(); // b 的值为 "world"
```
在这个示例中,我们首先实例化了一个用于存储 int 类型数据的 MyStack 对象 intStack,然后使用 push 方法向其中添加两个元素,再使用 pop 方法弹出一个元素并将其赋值给变量 a。接着,我们实例化了一个用于存储 std::string 类型数据的 MyStack 对象 strStack,重复上述过程,并将弹出的元素赋值给变量 b。
需要注意的是,类模板的定义和使用语法与函数模板类似,但是在实例化模板时需要指定模板参数的具体类型。