21xrx.com
2024-09-19 09:40:33 Thursday
登录
文章检索 我的文章 写文章
C++支持两种模板,一种是函数模板,另一种是类模板
2023-06-26 18:25:32 深夜i     --     --
C++ 模板 函数模板 类模板

C++是一个广泛使用的编程语言,它支持各种编程范式,其中包括模板编程。模板编程是一种基于模板的泛型编程方法,可以让代码更加灵活和可扩展。C++中的模板有两种类型:函数模板和类模板。

函数模板是一种定义在函数的模板。函数模板允许根据需要自动生成函数,这个生成的函数能够适配用户指定的参数类型。例如,一个在不同类型(int、float、double等)上执行相同操作的函数可以使用函数模板实现。下面是一个简单的函数模板示例:


template<typename T>

T max(T a, T b) {

  return a > b ? a : b;

}

上面这个函数模板包含一个类型参数T,它用于指定参数类型。函数模板中,每次使用时都会自动推断出T的类型。这个示例函数是一个简单的取最大值的模板函数,可以用于不同类型的参数。

类模板是一种定义在类的模板。类模板允许使用不同类型的数据成员、方法和构造函数。例如,可以使用类模板创建一个可以存储任意类型数据的模板类。下面是一个简单的类模板示例:


template<typename T>

class Stack {

public:

  Stack() { }

  void push(T);

  T pop();

private:

  T arr[100];

  int top;

};

template<typename T>

void Stack<T>::push(T ele) {

  arr[++top] = ele;

}

template<typename T>

T Stack<T>::pop() {

  return arr[top--];

}

上面这个类模板是一个简单的栈结构,具有push和pop方法,可以用于不同类型的数据。使用类模板时,每次使用都需要指定相应的模板参数,例如:


Stack<int> intStack;

Stack<float> floatStack;

以上两个实例分别是使用int和float作为类型参数的Stack类的实例。

总之,C ++的模板是一个非常强大的功能,可以让程序员更高效和可扩展。函数模板可以在不同类型之间共享通用代码,类模板可以创建更通用和灵活的数据结构和算法。学习和掌握C++模板编程技术,将会在日常编程中有很大帮助。

  
  

评论区

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