[C++程序设计]函数模板

定义函数模板的一般形 式为

template < typename T> 或 template <class T>

函数模板: 函数参数个数,函数体相同.参数类型不同

函数重载: 函数参数个数,类型不同.与函数类型(返回值)无关

 1 #include <iostream>
 2 using namespace std;
 3
 4 template<typename T>
 5 T max(T a, T b, T c)
 6 {
 7     if(b > a) a = b;
 8     if(c > a) a = c;
 9     return a;
10 }
11
12 int main()
13 {
14     int x, y, z, m;
15     cout << "please enter three integer numbers:" << endl;
16     cin >> x >> y >> z;
17     m = max(x, y ,z);
18     cout << "integer of max is " << m << endl;
19
20     double x1, y1, z1, m1;
21     cout << "please enter three double numbers:" << endl;
22     cin >> x1 >> y1 >> z1;
23     m1 = max(x1, y1 ,z1);
24     cout << "double of max is " << m1 << endl;
25
26     long x2, y2, z2, m2;
27     cout << "please enter three long numbers:" << endl;
28     cin >> x2 >> y2 >> z2;
29     m2 = max(x2, y2 ,z2);
30     cout << "long of max is " << m2 << endl;
31     return 0;
32 }

[C++程序设计]函数模板

时间: 2024-10-09 11:10:31

[C++程序设计]函数模板的相关文章

sdut 面向对象程序设计上机练习二(函数模板)

面向对象程序设计上机练习二(函数模板) Time Limit: 1000MS Memory limit: 65536K 题目描述 利用数组和函数模板求5个数最大值(分别考虑整数.单精度.长整数的情况). 输入 分别输入5个int型整数.5个float 型实数.5个long型正整数. 输出 分别输出5个int型整数的最大值.5个float 型实数的最大值.5个long型正整数的最大值. 示例输入 11 22 666 44 55 11.11 22.22 33.33 888.88 55.55 1234

面向对象程序设计上机练习二(函数模板)

面向对象程序设计上机练习二(函数模板) Time Limit: 1000MS Memory limit: 65536K 题目描述 利用数组和函数模板求5个数最大值(分别考虑整数.单精度.长整数的情况). 输入 分别输入5个int型整数.5个float 型实数.5个long型正整数. 输出 分别输出5个int型整数的最大值.5个float 型实数的最大值.5个long型正整数的最大值. 示例输入 11 22 666 44 55 11.11 22.22 33.33 888.88 55.55 1234

C++程序设计方法4:函数模板

函数模板 有些算法与类型无关,所以可以将函数的参数类型也定义为一种特殊的"参数",这样就得到"函数模板" 定义函数模板的方法:template<typename T> 返回类型 函数名称(函数参数): 如:template<typename T> T sum(T a, T b) {return a + b;} 函数模板在调用的时候,因为编译器能够自动推导出实际参数的类型,所以,形式上调用一个函数模板与 普通函数没有区别,如: int main

C++程序设计方法4:成员函数模板

成员函数的模板: 普通类的成员函数,也可以定义为函数模板,如: class normal_class { public: int value; template<typename T> void set(T const &v) { value = int(v);//在类内定义 } template<typename T> T get(); }; template<typename T> T normal_class::get() {return T(value)

泛型编程之函数模板

>模板的引入,为什么要使用模板? 在程序设计中往往存在这样一种现象:两个或多个函数的函数体完全相同,差别仅在于他们的参数类型不同,就需要分别给不同的数据类型定义不同的版本. 解决以上问题的一个比较好的方法就是使用模板.模板是实现代码重用机制的一种工具,他可以实现类型参数化,即把类型定义为参数,从而实现代码复用. >模板的分类: 模板分为函数模板和类模板.他们分别允许用户构造模板函数和模板类. >函数模板: 建立一个通用函数,其函数返回类型和形参类型不确定,用一个虚拟的类型来代表,这个通用

c++中函数模板的使用

在程序设计中,经常要使用到函数体相同的函数,如果我们要根据所使用的参数表不同来决定调用具体哪个函数时,我们经常使用的方式是进行函数重载,但是当我们的函数很多的时候会发现实现起来很不方便.所以c++提供了函数模板的概念,这和类模板实现起来的方式是类似的. 下面举个例子,我们经常要使用的冒泡排序算法,被排序的对象可能是double,int,char,float等等,下面是实现代码: template <typename T1,typename T2> void bubble(T1 *A, T2 l

C++ 之 函数模板

函数模板可以用来创建一个通用功能的函数,以支持不同参数,进一步简化重载函数的函数体设计. 声明方法: template <typename 标识符> 函数声明 编译器从调用实参的类型,推导出函数模板的类型的参数. 举例: /* *funtpl.cpp *aim : function template *date : 2015-7-15 *author : zhang *compiled by g++ */ #include <iostream> using namespace st

模板专题(一)函数模板

本系列属于长篇,有兴趣的可以慢慢参看(源于读书笔记和各种资料整理) 解决模板,主要为了C++11中的某些问题做个铺垫 在学习模板之前,首先想到自己的一个问题,有时候需要打印某些调试信息,除了使用一些专业的LOG工具外,一般情况下为了简单方便,就直接使用std::cout,比如 std::cout<<"参数i="<<i<<std::endl; std::cout<<"消息值="<<msg<<std

c++知识点总结--函数模板

通用函数可变参模板 用于处理不限定参数的函数 showall(){//空函数,接口,最后结束递归 } template<typename T,typename... Args> void showall(T value,Args ...args){ cout<<value<<endl; showall(args); } template<typename T,typename ...Args> void showall(const T &value,