四个C++函数模板实例

原创 2016年06月01日 21:39:28

实例一

#include <string> 
#include <iostream> 

using namespace std; 

template<typename T> void print(const T& var) 
{     
    cout << var << endl; 
} 
int main() 
{     
    string str("Hello World");     
    const int num=12345; 
    print(str); 
    print(num); 
    return 0; 
}




实例二

#include <iostream.h> 
// 定义函数模板,找出三个值中最小的值,与数据类型无关 
template <class T> 
T min(T ii, T jj, T kk) 
{ 
    T temp; 
    if((ii<jj)&&(ii<kk)){     temp=ii; } 
    else if((jj<ii)&&(jj<kk)){ temp=jj; } 
    else{    temp=kk;} 
    return temp; 
} 
int main()  
{ 
    cout<<min("anderson","Washington","Smith")<<endl; 
    return 0;
}




实例三

#include <iostream>
#include <string>

using namespace std;

template<class T> void swap(T *x, T *y){//函数的模板,只要能使用等号赋值类型都可以用这个模板互换
	 T temp = *x;
	 *x = *y;
	 *y = temp;
	 }

int main()
{
    int i = 9, j = 5;
    float k = 9.2, l = 5.6;
    swap(&i, &j);//交换整形
    swap(&k, &l);//交换浮点型
    cout<<"i = "<<i<<" , j = "<<j<<endl;
    cout<<"k = "<<k<<" , l = "<<l<<endl;
    return 0;
} 




实例四

使用普通函数;

#include<iostream>

using namespace std;

int int_add(int a,int b)//定义函数int_add用于int型数据相加
{
 int c;
 c=a+b;
 return c;
} 

double dou_add(double a,double b)//定义函数dou_add用于double型函数相加
{
 double c;
 c=a+b;
 return c;
}

int main()
{
 cout<<int_add(5,3)<<endl;  //调用int_add函数
 cout<<dou_add(5.35,5.5)<<endl;  //调用dou_add函数
 return 0;
}

使用函数重载;

#include<iostream>

using namespace std;

int n_add(int a,int b)//定义函数n_add用于int型数据相加
{
 int c;
 c=a+b;
 return c;
} 

double n_add(double a,double b)//定义函数n_add用于double型函数相加
{
 double c;
 c=a+b;
 return c;
}

int main()
{
 cout<<n_add(5,3)<<endl;  //调用n_add函数
 cout<<n_add(5.35,5.5)<<endl;   //调用n_add函数
 return 0;
}


使用函数模板

#include<iostream>

using namespace std;

template<typename T>
T n_add(T a,T b)
{
 T c;
 c=a+b;
 return c;
} 

int main()
{
 cout<<n_add(5,3)<<endl;
 cout<<n_add(5.35,5.5)<<endl;
 return 0;
}



相关文章推荐

C++ 函数模板 实例化和具体化

函数模板是C++新增的一种性质,它允许只定义一次函数的实现,即可使用不同类型的参数来调用该函数。这样做可以减小代码的书写的复杂度,同时也便于修改。但是,在代码中包含函数模板本身并不会生成函数定义,它只...

C++利用不完全实例化来获得函数模板参数的返回值和参数

有一些模板会以函数为模板参数,有时候这些模板要获得函数的返回值和参数。如在boost中的signal和slot机制,就存在这样情况。 那么,我们如何得到这些信息呢? 我们使用C++不完全实例化来实...
  • doon
  • doon
  • 2013年07月13日 18:19
  • 3599

实例详解$_SERVER函数中QUERY_STRING和REQUEST_URI等四个变量区别

$_SERVER存储当前服务器信息,其中有几个值如$_SERVER["QUERY_STRING"],$_SERVER["REQUEST_URI"],$_SERVER["SCRIPT_NAME"]和$_...

实例详解$_SERVER函数中QUERY_STRING和REQUEST_URI等四个变量区别

实例详解$_SERVER函数中QUERY_STRING和REQUEST_URI等四个变量区别 实例详解$_SERVER函数中QUERY_STRING和REQUEST_URI等四个变量区别     ...

C++函数模板 模板实例化、具体化

函数模板是C++新增的一种性质,它允许只定义一次函数的实现,即可使用不同类型的参数来调用该函数。这样做可以减小代码的书写的复杂度,同时也便于修改(注:使用模板函数并不会减少最终可执行程序的大小,因为在...

C++泛型编程1——函数模板实例化,模板参数,重载及特化

在C++中我们都知道引入了函数重载,那么在实际应用过程中:   如果我们想要实现一个加法函数,我们可以写出很简单的代码:   int ADD(int a,int b) {   return a+b...

C++函数模板 模板实例化、具体化

C++函数模板 模板实例化、具体化     函数模板是C++新增的一种性质,它允许只定义一次函数的实现,即可使用不同类型的参数来调用该函数。这样做可以减小代码的书写的复杂度,同时也便于修改(注:使用...

C++类默认生成的四个函数

原文:http://www.myexception.cn/cpp/564396.html 序:对于一个空类,编译器默认生成四个成员函数:默认构造函数、析构函数、拷贝构造函数、赋值函数 一,默认...
  • zcliatb
  • zcliatb
  • 2014年12月04日 11:19
  • 558

C++ 和 指针类 默认生成的四个函数

序:对于一个空类,编译器默认生成四个成员函数:默认构造函数、析构函数、拷贝构造函数、赋值函数 一,默认构造函数        默认构造函数(default constructor)就是在没有显式提...

C++类和对象、四个默认成员函数、运算符重载

C++类和对象、四个默认成员函数、运算符重载一.C++类的理解:1.类:类是面向对象的一个概念,类其实可以说是一种用户自定义的数据类型,而比基本的数据类型,比如:int、long、double等等,只...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:四个C++函数模板实例
举报原因:
原因补充:

(最多只允许输入30个字)