C++ 带参数的模板类举例
时间: 2024-12-14 21:12:55 浏览: 11
在C++中,模板是一种强大的特性,允许我们编写通用的代码,可以处理不同类型的数据。带参数的模板类,也称为泛型类,通过模板参数来定义类的行为。下面是一个简单的例子:
```cpp
template <typename T>
class Stack {
private:
std::vector<T> elements; // 定义一个动态数组来存储元素
public:
// 构造函数
Stack() {}
// 入栈操作,添加元素到顶部
void push(const T& item) {
elements.push_back(item);
}
// 出栈操作,返回并移除顶部元素
T pop() {
if (isEmpty()) {
throw std::runtime_error("Stack is empty");
}
return elements.back(); // 返回最后一个元素
elements.pop_back(); // 移除最后一个元素
}
// 查看栈是否为空
bool isEmpty() const {
return elements.empty();
}
};
// 使用示例
int main() {
Stack<int> intStack;
intStack.push(5);
intStack.push(10);
Stack<std::string> strStack;
strStack.push("Hello");
strStack.push("World");
return 0;
}
```
在这个例子中,`Stack`是一个模板类,它的参数`T`决定了实例化后的栈可以存放的元素类型(如`int`或`std::string`). 我们可以根据需要创建不同的`Stack`实例,比如存储整数的`Stack<int>`和存储字符串的`Stack<std::string>`。
阅读全文