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++ Template

扩展阅读

想了解更多关于 C++ 模板的信息?请访问本站 C++ 模板专题