21xrx.com
2024-09-17 04:22:59 Tuesday
登录
文章检索 我的文章 写文章
函数模板和类模板
2023-07-05 10:03:20 深夜i     --     --
函数模板 类模板 泛型编程 类型不确定 参数自适应

函数模板和类模板是C++语言中的重要概念。它们是一种代码重用技术,可以在不重复编写相同代码的情况下,通过模板来生成不同类型的函数和类。

函数模板是一种通用函数,它可以接受不同类型的参数,并进行相应的处理。函数模板的语法类似于正常的函数定义,但是在函数名后需要加上尖括号,里面的参数是类型模板参数。例如:


template<typename T>

T max(T a, T b) {

  return (a > b) ? a : b;

}

上面的代码定义了一个模板函数,可以计算两个参数中的最大值,并返回结果。该函数接受两个相同类型的参数,并返回同一类型的值。使用时,可以传递任意类型的参数给该函数。

类模板是一种通用类,它可以生成多个具体的类,这些类具有相同的结构和行为,但是其成员和方法可以针对不同的类型进行不同的实现。类模板的语法也类似于函数模板,只是在类名后需要加上尖括号,里面是类型模板参数。例如:


template<typename T>

class Stack {

private:

  T* m_data;

  int m_size;

public:

  Stack(int size) {

    m_size = size;

    m_data = new T[size];

  }

  void push(const T& value) {

    m_data[m_size++] = value;

  }

  T pop() {

    return m_data[--m_size];

  }

  bool is_empty() const

    return m_size == 0;

  

};

上面的代码定义了一个模板类Stack,它使用了一个T类型指针来存储数据和一个整型变量来跟踪栈的大小。该类有三个方法,分别是push、pop和is_empty。这些成员方法在针对不同类型的模板实例化时可以有不同的行为实现。

总之,函数模板和类模板是C++中非常有用的特性。它们可以大大减少代码重复,并提高代码的复用性。对于那些需要处理多种类型数据的算法和数据结构,它们更是不可或缺的。

  
  
下一篇: C++ URL解码

评论区

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