C++具有C的特性,兼容C,所以有面向过程编程的思维。C++有封装继承多态,所以面向对象编程的思维。C++又自带了模板化编程(一种与数据类型无关,需要调用时才进行参数识别替换,可重用性极强),这一特性是泛型编程。
下来我们来讲讲C++里的泛型编程模板。
以下都用该头文件及声明函数模板:
函数模板第一行template,typename作为关键字,anytype 表示可以被替换成任何类型,在调用时只需要如下操作:
简单调用只需要在调用时声明模板将要生成的数据类型即可,非常方便,一套模板可以应用各种数据类型。
再深入一点看看模板第一行都是声明,括号内是模板的参数,在调用时才说明是哪种,然后替换为需要的函数进行实现。
上图中,我们使用了两次模板,调用时说明了不同的参数类型,生成了各自的函数。这就是模板带来的好处了,代码复用。P1,P2就是模板的形式参数了。调用时传入实参,只是参数变成了数据类型而已。
非类型模板:
说白了就是模板里嵌入了固定的数据类型,用来固定的传递某些特定参数,为实现某些需要的功能。也是模板的一种。
非类型模板 在构造函数中使用固定数据类型传参实现了某些特定运算过程。把这两个元素的和在析构函数中进行了输出。
类的模板:
类的模板除了函数,类也可以设计模板,观察可以知道,模板无非是将数据类型换成了未知数据类型,调用时说明。图中程序使用构造函数进行了数据初始化,同样的可以进行数据修改。
C++中的模板就先说这么多了,总的来说,函数模板化就是使函数的复用性得到了新的升级,函数重载都不再是问题,直接进化到自主定制模板的数据类型。
––共享知识,迎接未来,我是美玉东番大人。
网友评论