
课程咨询: 400-996-5531
投诉建议: 400-111-8989
认真做教育 专心促就业
掌握不同的编程开发语言能够让软件开发程序员满足更多的编程开发需求,而本文我们就简单来了解一下,c++编程模板类型与用法分享。
1、泛型编程
泛型编程是指:使用一个特殊的类型(泛型)来定义变量,写一个模板函数,以适应传递不同类型的参数,下列的T1和T2就是一种泛型。
注意:模板不支持分离编译,即声明在.h文件,定义在.cpp文件。
但是可以在.h文件中定义,然后在包含这个h头文件的.cpp文件中应用。
普通函数在编译时函数名会被编译称特殊符号。
而函数模板在编译阶段根本不会被编译为特殊符号,因为它没有实例化。
所以在链接时,根据_Z4addii这个名字会找不到对应的函数原型。
2、函数模板
声明方法:template表示将T声明为一种变量类型(泛型)
根据传入的参数类型,T可以自动匹配对应的类型。
这样就可以使一个函数可以用于不同变量类型中,增加函数的复用,这就是函数模板。
不同地方调用函数模板时,调用的不是同一个函数,虽然都是同一个模板
编译器在这里,将模板根据实参类型进行了实例化,实例化成不同的函数。
注意:如果存在非模板函数的同名函数,如果条件相同的情况下,则会优先调用非模板函数。
3、类模板
在类中某些变量类型使用泛型,定义对象时必须使用显性实例化对象,否则编译器无法判断是什么变量类型。
模板参数
模板参数分为类型形参和非类型形参。
类型形参
下列T1就是类型形参,可以像int等作为变量类型,用来定义变量。
非类型形参
下列N就是非类型形参,不能作为变量类型,但是可以作为常量使用。
注意:
浮点数、类对象、字符串等不能作为非类型形参(只能是整形)
非类型的模板参数必须在编译阶段就能确认结果。
非类型形参在类的内部无法更改。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。