美文网首页
C++ 模板,泛型编程

C++ 模板,泛型编程

作者: 美玉东番 | 来源:发表于2019-08-13 02:58 被阅读0次

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

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

    以下都用该头文件及声明

    函数模板:

    函数模板

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

    简单调用

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

    再深入一点看看

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

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

    非类型模板:

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

    非类型模板

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

         

    类的模板:

    类的模板

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

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

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

    相关文章

      网友评论

          本文标题:C++ 模板,泛型编程

          本文链接:https://www.haomeiwen.com/subject/humpjctx.html