c++模版 template

原创 2013年12月03日 09:51:32

              c++中定义重载函数可以使代码重用,而模版template也是实现代码重用机制的一种工具。它可以把参数类型化,也可以说是抽象化,而到真正调用的时候,系统会识别参数真正的类型,从而自动实例化参数,进行调用。

              举个例子,实现两个数交换的函数swap()

              实现两个int型数据交换:

              

swap(int x, int y)
{
	int t;
	t = x;
	x = y;
	y = t;
}

              但是,当两个数据不只是int型的时候,比如是double型或者是char型的时候,这些代码就不适用了。

              但用到模版template的时候,重用性就很高了。

              

template <class T>
swap(T&x, T&y)
{
	T t;
	t = x;
	x = y;
	y = t;
}

              上面的T就是一个抽象的类型,真正调用的时候,系统识别T具体是什么类型,就会调用什么类型,这样的代码重用效率是很高的。

               完整代码:

               

#include<iostream>
using namespace std;
template < class T >
void Two_swap(T& x, T& y)
{
	T t;
	t = x;
	x = y;
	y = t;
}
int main()
{
	int a = 1,b = 2;
	double i = 1.1,j = 2.2;
	char ch1 = 'A',ch2 = 'B';
	Two_swap(a,b);
	Two_swap(i,j);
	Two_swap(ch1,ch2);
	cout<<a<<" "<<b<<endl;
	cout<<i<<" "<<j<<endl;
	cout<<ch1<<" "<<ch2<<endl;
	return 0;
}

 


                        运行结果:

               


      

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++ template--类模版Stack的实现

学习模版!

c++ template模版学习

1. 模板的概念。 我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX(...

C++template--函数模版

//max.hpp template inline T const& max(T const &a,T const &b) { return a>b?a:b; } template inlin...

C++设计模式之十一--Template_Method模版方法模式

转自:http://www.cnblogs.com/wanggary/archive/2011/04/15/2016619.html       模板模式也是相当简单的一种模式,而且是比较常用...

关于postGIS没有template_postgis模版的问题解决

template_postgis模版是创建空间数据库的必要手段,没有这个模版没办法导入shp文件。 解决办法: 打开psql(用开始菜单中搜索即可搜到,或者进入pgAdmin的插件菜单下的...

软件设计模式——模版方法模式(Template Pattern)

定义在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使的子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。将主要的方法定义为final,防止子类修改算法骨架,将子类必须实现...

Python实现设计模式--04.模版方法模式(Template Method Pattern)

模版方法模式是设计模式中比较好理解的一种模式,

SharePoint 2013 客户化(Customize) 搜索结果(Search result)-显示模版(Dispaly template)&搜索结果类型(Search Result Type)

本文将描述如何使用显示模版(Dispaly template)&搜索结果类型(Search Result Type) 来客户化(Customize) SharePoint 2013 搜索结果(Sear...

【设计模式 - 23】之模版方法模式(Template)

1      模式简介 模版方法模式的定义: 模版方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。   ...

WPF Template模版之DataTemplate与ControlTemplate【一】

WPF系统不但支持传统的Winfrom编程的用户界面和用户体验设计,更支持使用专门的设计工具Blend进行专业设计,同时还推出了以模板为核心的新一代设计理念。 1. 模板的内涵     作为表现形式,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++模版 template
举报原因:
原因补充:

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