认识过C++语言,都知道它是一门泛型的编程语言。那么到底什么是泛型呢?
百度百科介绍:泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。
那么具体实现应该怎么样理解呢?最好的例子就是函数模板了。
函数模板使用泛型来定义函数,所谓泛型就是用不同的类型替换。
举个栗子,如果没有模板要编写一个交换函数,有n种数据类型交换就可能要需要写n个函数了。使用函数模板就不必考虑这么多变化的数据类型了。那么具体程序是怎么样实现的呢?在程序运行时,编译器讲检查所使用的参数类型,便生成相应的函数就行了。
示例:
#include <iostream>
#include <fstream>
struct node{
int x;
};
template<typename T>
void Swap(T &i,T &j){
T temp=i;
i=j;
j=temp;
}
int main() {
using namespace std;
int a=2,b=3;
cout<<a<<" "<<b<<endl;//2 3
Swap(a,b);
cout<<a<<" "<<b<<endl;//3 2
double c=3,d=4.0;
cout<<c<<" "<<d<<endl;//3 4
Swap(c,d);
cout<<c<<" "<<d<<endl;//4 3
node i,j;
i.x=1;j.x=2;
cout<<i.x<<" "<<j.x<<endl;//1 2
Swap(i,j);
cout<<i.x<<" "<<j.x<<endl;//2 1
system("pause");
}