用另一种方式重用代码 函数模板:function template: template void swap(T& x,T& y){ T temp = x; x = y; y = temp; } T 可以是 参数类型或者 自定义类型 .h文件为:
#ifndef TEMPALTE_H
#define TEMPALTE_H
class tempalte
{
public:
tempalte();
virtual ~tempalte();
template<class T>
void swap(T& x,T& y);
};
#endif
.cpp文件为:
#include "tempalte.h"
tempalte::tempalte()
{
}
tempalte::~tempalte()
{
}
template<class T>
void swap(T& x,T& y){
T temp = x;
x = y;
y = temp;
}
main.cpp文件为:
#include <iostream>
#include <tempalte.h>
using namespace std;
int main()
{ int a=1,b=2;
swap(a,b);
cout<<"a b :"<<a<<' '<<b<<endl;
char c='c',d='d';
swap(c,d);
cout << "c d :" << c<<' '<<d<<endl;
return 0;
}
|