c++ 模板的使用
来源:互联网 发布:587端口 编辑:程序博客网 时间:2024/06/14 00:30
今天在写程序时感觉因为函数参数类型的问题而重复编逻辑相同的函数比较烦,遂翻书找到了模板,并整理了C++模板的简单使用方法。
c++模板有函数模板和类模板两种使用方法。
函数模板
定义
在函数前加上 template<class ElementType> 其中class为关键字 与可以为typename,ElementType为形式参数名,就是自己定义的名字。
需要多个形式参数名时这样: template <class T1,class T2>
使用
举个例子: template<class ElementType>
void Fun (ElementType a){ ElementType b=a; }
使用时:int a=2; Fun(a);
double b=2.0;Fun(b); 从而可以不必为类型问题而烦恼。
类模板
定义
与函数模板相似,也是以template开头,随后是用尖括号括起来的模板形式参数列表,每个形式参数之前都有关键字(class或者typename)标识
如 template<class ElementType> calss A{ ...};
如果成员函数不是在声明中定义,则成员函数要以template<class ElementType>开头,而且成员函数定义时,二元作用域运算符::之前的类名要用 类名<ElementType>,以此将成员函数的定义与类模板以及模板参数联系起来。
使用
在实例化类对象时,形式是:类名<参数类型> 对象名。
如若定义了一个类模板Stack,则在实例化时这样:Stack<int> intStack;
int 会取代ElementType。
其成员函数的使用和一般类一样。
注意
1.函数模板在使用时,编译器需要根据实在参数的类型来定义函数模板的实例,函数调用调用的就是实例化得到的模板函数。
2.类模板在使用时,编译器需要根据实在参数的类型来得到具体的类,这个具体的类称之为类模板实例(或模板类),类模板实例可以实例化对象。
3.模板虽然只编写一次,但是编译后的代码仍然包含了多个是实例化函数或者类的代码,所以模板不会减少编译后代码的量,但是很好地支持了软件的重用,以有利于软件的一致性维护。
1 0
- C++set模板的使用
- C++_类模板的使用
- C++List模板类的使用
- C++template(模板)的使用
- C++-使用模板解决问题
- C++,MD5算法的实现类,使用了模板技巧
- C语言不支持函数模版和类模板的使用
- 小白教你学习C++(5)函数模板的使用
- C++ 模板使用介绍
- 【c++】模板的特化
- 代码模板的使用
- supesite模板的使用
- Facelets模板的使用
- C++模板的使用
- 模板的使用
- extjs模板的使用
- 类模板的使用
- 类模板的使用
- 如何学习机器人Ros?
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)
- Spring学习之Spring的声明式事务管理详解
- 关于“expected ';', ',' or ')' before '&' token”错误
- LINUX下借助YUM和RPM教你正确寻找并安装软件的姿势
- c++ 模板的使用
- react-native-io-fetch io接口请求封装
- 聊聊Java的泛型及实现
- 多线程_获取和设置线程对象名称
- Java程序员新手老手都离不开八大开发工具
- hdu 1263 水果(map)
- java1.8 HahMap的改进
- java语言基础(16)——java中break多重循环
- JAVA求学之路第二天