21xrx.com
2024-12-22 22:54:32 Sunday
登录
文章检索 我的文章 写文章
函数模板和类模板
2023-07-05 09:46:30 深夜i     --     --
函数模板 类模板 泛型编程 通用性 类型参数化

函数模板和类模板是 C++ 中的两个重要的模板技术,它们可以帮助我们更高效、更灵活地编写代码。

函数模板是一种可以用于生成函数的模板,它可以让我们快速地定义一个通用的函数,而不用为每个特定的数据类型编写一个独立的函数。函数模板的语法非常简单,使用关键字 template 定义,然后在尖括号中声明类型参数。例如,下面的代码定义了一个通用的函数模板,用于计算两个数的和:


template<typename T>

T add(T a, T b) {

  return a + b;

}

上面的代码声明了一个类型参数 T,然后使用 T 来定义函数 add,这个函数可以用于任何类型的数据,包括整数、浮点数和自定义类型。

类模板是一种可以用于生成类的模板,它可以帮助我们更方便地定义一组相似的类,而不必每个类都重复定义相同的代码。类模板的语法也非常简单,同样使用关键字 template 定义,然后在尖括号中声明类型参数。例如,下面的代码定义了一个通用的栈类模板,用于存储任意类型的元素:


template<typename T>

class Stack {

private:

  vector<T> data;

public:

  void push(T x) {

    data.push_back(x);

  }

  T pop() {

    T x = data.back();

    data.pop_back();

    return x;

  }

};

上面的代码声明了一个类型参数 T,然后使用 T 来定义了一个 vector 类型的 data 数组,这个数组用于存储栈中的元素。这个栈类模板可以用于任何类型的元素,包括整数、浮点数和自定义类型。

总之,函数模板和类模板是 C++ 中非常重要的模板技术,它们可以帮助我们更方便地定义通用的代码,同时减少了代码的冗余,提高了程序的可读性和可维护性。如果你还没有学习过这两个技术,那么现在就是一个好时间去开始学习它们。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复