C++ 模板,泛型编程

2019-08-13  本文已影响0人  美玉东番

        C++具有C的特性,兼容C,所以有面向过程编程的思维。C++有封装继承多态,所以面向对象编程的思维。C++又自带了模板化编程(一种与数据类型无关,需要调用时才进行参数识别替换,可重用性极强),这一特性是泛型编程。

        下来我们来讲讲C++里的泛型编程模板。

以下都用该头文件及声明

函数模板:

函数模板

        第一行template,typename作为关键字,anytype 表示可以被替换成任何类型,在调用时只需要如下操作:

简单调用

        只需要在调用时声明模板将要生成的数据类型即可,非常方便,一套模板可以应用各种数据类型。

再深入一点看看

        模板第一行都是声明,括号内是模板的参数,在调用时才说明是哪种,然后替换为需要的函数进行实现。

        上图中,我们使用了两次模板,调用时说明了不同的参数类型,生成了各自的函数。这就是模板带来的好处了,代码复用。P1,P2就是模板的形式参数了。调用时传入实参,只是参数变成了数据类型而已。

非类型模板:

        说白了就是模板里嵌入了固定的数据类型,用来固定的传递某些特定参数,为实现某些需要的功能。也是模板的一种。

非类型模板

        在构造函数中使用固定数据类型传参实现了某些特定运算过程。把这两个元素的和在析构函数中进行了输出。

     

类的模板:

类的模板

        除了函数,类也可以设计模板,观察可以知道,模板无非是将数据类型换成了未知数据类型,调用时说明。图中程序使用构造函数进行了数据初始化,同样的可以进行数据修改。

        C++中的模板就先说这么多了,总的来说,函数模板化就是使函数的复用性得到了新的升级,函数重载都不再是问题,直接进化到自主定制模板的数据类型。

––共享知识,迎接未来,我是美玉东番大人。

上一篇下一篇

猜你喜欢

热点阅读