C++ 模板是一种强大的特性,它允许你编写与数据类型无关的代码。本教程将带你了解 C++ 模板的基础知识。
基础概念
C++ 模板允许你定义泛型函数和类,这使得代码更加灵活和可重用。
- 泛型函数:可以接受任何类型的参数。
- 泛型类:可以创建任何类型的对象。
泛型函数示例
template <typename T>
T add(T a, T b) {
return a + b;
}
在上面的例子中,add
函数可以接受任何类型的参数。
泛型类示例
template <typename T>
class Stack {
private:
T* elements;
int top;
int capacity;
public:
Stack(int cap) : capacity(cap), top(-1) {
elements = new T[capacity];
}
~Stack() {
delete[] elements;
}
bool isEmpty() {
return top == -1;
}
void push(T element) {
if (top < capacity - 1) {
elements[++top] = element;
}
}
T pop() {
if (!isEmpty()) {
return elements[top--];
}
return T();
}
};
在上面的例子中,Stack
类可以存储任何类型的元素。
模板特化
在某些情况下,你可能需要对特定类型的模板进行特殊处理。这时,你可以使用模板特化。
template <typename T>
class Stack {
// ...
};
template <>
class Stack<int> {
// 特化后的 Stack<int> 实现
// ...
};
图片示例
这里有一个关于 C++ 模板的图片:
扩展阅读
想了解更多关于 C++ 模板的信息?请访问本站 C++ 模板专题。