C++ template
来源:互联网 发布:怪物猎人ol数据库 编辑:程序博客网 时间:2024/06/06 05:11
C++ 的template编程对于代码具有很高的重复利用率。
template的基本用法:template<class T>/template<typename T>(一般推荐用法)
下面介绍class和typename的区别:在模板参数列表中,这两种方式是相同的,但是在一些场合,typename有其特有的作用,即在嵌套类型说明是需要用typename说明后面的符号为类型而不是成员名称等;参考:
http://blog.163.com/susu_sf/blog/static/171060253201092233759957/
模板的作用就是用一个模板类型T来代替实际的类型,这样只要有相应的函数实例,通过实例的类型就可以将T变成实例。
模板参数和作用域:模板参数遵循普通的作用域规则,一个模板参数名的可用范围是其声明之后,至模板声明或定义结束之前,模板参数会隐藏外层作用域中声明的相同名字的模板名,在模板内不能重用模板参数名;
模板的声明也是必须要包含模板参数,即定义和声明不再一块的话,声明时要有模板参数,定义时也要有。
#include <iostream>using namespace std;template <typename T> //声明需要模板参数int compare(const T &v1,const T &v2);template <typename T> T sum(T s1,T s2) {return s1+s2;} //可以这样写,空一格再写函数int main(){int v1 = 10,v2 = 11;double d1 = 0.5, d2 = 1.7;int result,result1;double result2;result = compare(v1,v2);result1 = sum(v1,v2);result2 = sum(d1,d2);cout << result << endl;cout << result1 << endl;cout << result2 << endl;} template <typename T> //定义时也要有模板参数int compare(const T &v1,const T &v2){ //作用范围有限if(v1<v2) return -1;if(v1>v2) return 1;if(v1==v2) return 0;}
0 0
- C++template
- C template
- C++Template
- list c++template
- Queue-C++template
- Stack-c++template
- C++Template之Priority_queue
- [C++] Template练习
- eclipse-c-template
- eclipse-c-template
- C++template ;模板学习
- list c++template
- c plus template
- Template模版实例(C++)
- C++template--函数模版
- 练习笔记 C++Template
- [C++]Stack with Template
- 【c++】template简述
- python 2进制,8进制,10进制,16进制转换
- 配置Linux日志文件
- YII学习笔记
- String和StringBuffer的传参问题
- 内存泄露从入门到精通三部曲之排查方法篇
- C++ template
- JAVA学习作品之销售管理系统V1.0
- 重定位引入和链接脚本1
- NodeJS实现HTTP/HTTPS代理
- Java中String判断相等equals与==的区别以及StringBuilder的equals
- python垃圾回收机制
- python垃圾回收机制
- pip install mysql-python fails with EnvironmentError: mysql_config not found
- StringBuffer赋值问题