21xrx.com
2024-11-10 00:57:33 Sunday
登录
文章检索 我的文章 写文章
C++11模板类的使用
2023-06-24 04:22:18 深夜i     --     --
C++11 模板 使用

C++11引入了许多新的特性,其中之一就是模板类的改进。模板类是一种泛型编程的方式,可以在编写代码时不指定数据类型,而是在实例化时指定。这样一来,同一段代码就可以处理不同类型的数据,提高了代码的复用性和灵活性。

一、模板类基础语法

使用模板类需要使用关键字template和typename,语法如下:


template<typename T>

class Class_Name

  // 模板类的成员和方法

;

其中typename T表示使用泛型类型T作为模板参数,Class_Name表示模板类的名字。

二、模板类的使用

在使用模板类时,需要在实例化时传递实际类型,语法如下:


Class_Name<Type> Object_Name;

其中Type是实际要使用的类型名,Object_Name是对象的名字。

三、模板类的特化

有时候需要特殊处理某些类型的数据,这时候可以使用模板类的特化。特化是指为某个具体类型编写一个特殊版本的模板类。特化的语法如下:


template<>

class Class_Name<Specific_Type>

  // 特化类的成员和方法

;

其中,Specific_Type是要特化的类型。

四、示例代码

下面是一个模板类的示例代码,该类可以计算两个数的最大值和最小值:


#include <iostream>

#include <algorithm>

using namespace std;

template<typename T>

class MaxMin {

private:

  T a, b;  // 两个待计算的数字

public:

  MaxMin(T x, T y) : a(x), b(y) {};

  T max() {return ::max(a, b);}  // 计算最大值

  T min() {return ::min(a, b);}  // 计算最小值

};

int main() {

  MaxMin<int> mm1(5, 3);  // 创建MaxMin对象,并传入两个数字

  MaxMin<float> mm2(5.2, 3.8);

  cout << "The max value of mm1 is " << mm1.max() << endl;  // 调用max方法输出结果

  cout << "The max value of mm2 is " << mm2.max() << endl;

  cout << "The min value of mm1 is " << mm1.min() << endl;  // 调用min方法输出结果

  cout << "The min value of mm2 is " << mm2.min() << endl;

  return 0;

}

运行结果:


The max value of mm1 is 5

The max value of mm2 is 5.2

The min value of mm1 is 3

The min value of mm2 is 3.8

可以看到,通过模板类的方式,我们可以很方便地对不同类型的数进行最大值和最小值的计算。

  
  

评论区

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