C++函数模板
2016-03-16 15:41
155 查看
/*====================================================================== 函数模板: 实例: int max(int a,int b){return a>b?a:b;} float max(float a,float b){return a>b?a:b;} char max(char a,char b){return a>b?a:b;} 数据类型不同 逻辑是相同的 关键字 template typename class(表示数据类型不是类) 函数模板 类模板 template<class T>//class也可以的是typename T max(T a,T b)//函数模板 { return a>b?a:b; } int main() { int a=max(1,2);//模板函数 没有数据类型 根据输入参数自动匹配 有数据类型 输入的参数必须符合输入的数据类型 cout << max<int>(1, 2) << endl; } ================================================================ 单参数模板 template<int size> void display() { cout<<size<<endl; } ================================================================ 多参数模板 template<typename T,typename C> void(T t,C c) { cout<< t << c << endl; } ================================================================ 模板参数重载 template<typename T> template<typename T,float> template<typename T,typename C> 函数模板本身并不是相互重载的关系 生成模板函数后 void print<int>(int) void print<int>(int,float) void print<int>(int,int) 便形成了重载 /*======================================================================*/ #include <iostream> using namespace std; template<class T> T max(T a, T b) { return a > b ? a : b; } template<int size>//函数模板 void display() { cout << size << endl; } template<typename T, typename C> void test(T t, C *c) { cout << t << c << endl; } int main() { display<1>();//模板函数 test<int, char>(4, "ds"); cout << max<int>(1, 2) << endl; }
相关文章推荐
- c++ 二叉树的线索化(前中后序遍历)
- C/C++编译链接过程详解
- OpenGL蓝宝书第五章代码勘误以及惯性坐标系去解释模型变换:Pyramid.cpp
- (转)运算优先级、结合性、求值顺序、副作用和顺序点
- C++如何选择类型
- kmp算法及其c++实现
- C++继承20160214
- C++多态20160214
- C++中常用到的容器
- C++文件读写详解
- C#调用c++ dll 方式
- C++中 引用和指针的区别
- C++ 模板
- 选择排序c语言实现
- C++标准库之substr函数用法
- C++标准库之queue(各函数及其使用全)
- C语言变长数组data[0]
- 创建和使用动态库DLL
- 值得推荐的C/C++框架和库
- c++在头文件中定义全局变量时需要注意的地方