📜  模板 c++ (1)

📅  最后修改于: 2023-12-03 14:55:53.039000             🧑  作者: Mango

模板 C++

介绍

模板是一种C++语言的特性,它允许程序员在编写代码时使用参数化类型或参数化函数,从而实现代码的重用和泛化。C++的模板功能非常强大,可以为多种类型创建通用代码,可以减少代码的重复编写,提高代码的可维护性和可读性。

模板的语法
模板函数
template <typename T>
T add(T a, T b) {
    return a + b;
}

以上是一个简单的模板函数的示例,它接受两个相同类型的参数,并返回它们的和。使用 template <typename T> 声明了一个模板函数,在函数体内可以使用类型参数 T 定义参数类型以及返回类型。

模板类
template <typename T>
class Stack {
private:
    T stackArray[100];
    int top;

public:
    void push(T item);
    T pop();
};

以上是一个简单的模板类的示例,它实现了一个通用的栈数据结构。使用 template <typename T> 声明了一个模板类,在类定义中可以使用类型参数 T 定义类的成员变量和成员函数。

使用模板
实例化函数模板
int result1 = add<int>(5, 3);
float result2 = add<float>(2.5, 3.7);

以上是函数模板的实例化示例,通过 <typename> 指定了函数模板的类型参数,并传递具体的类型作为参数,可以实例化出具体类型的函数。

实例化类模板
Stack<int> intStack;
Stack<float> floatStack;

以上是类模板的实例化示例,通过 <typename> 指定了类模板的类型参数,并在定义对象时传递具体的类型,可以实例化出具体类型的类。

模板的优势
  • 代码重用:使用模板可以创建通用的函数或类,可以适用于多种类型的数据,减少代码的重复编写。
  • 泛化编程:模板能够在编译时期进行类型检查和推导,可以写出更加灵活和泛化的代码。
  • 高性能:模板展开成具体类型的代码在编译时期完成,没有额外的运行时开销。
总结

模板是C++中非常强大的特性,可以让程序员轻松地创建泛化的代码,提高代码的可维护性和可读性。使用模板可以实现函数重载、容器类、算法等多种功能,对于提高编程效率和代码质量非常有帮助。