c++:模板
一、模板的基本概念
c++除了面向对象的编程思想之外,还有泛型编程,主要技术是模板。
c++提供两种模板机制:函数模板,类模板。
函数模板:建立一个通用函数,其函数返回值和形参类型可以不具体定制,同一个虚拟的类型来代表。(模板必须声明在函数上方,且一个模板只对应一个函数)
语法:
template <typename T> //函数声明或定义 //template--声明创建模板 //typename--声明后面的符号是一种数据类型,可以用class代替 //T--通用的数据类型,名称可替换
二、模板实例
#include <iostream>
using namespace std;
template <typename T> //声明一个排序模板
void mysort(T arr[], int len) {
int i, j;
T temp;
for (i = 0; i < len - 1; i++)
for (j = 0; j < len - 1 - i; j++)
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
template <typename T> //声明一个打印模板
void print(T arr[],int len){
int i;
for(i=0;i<len;i++)
cout<<arr[i]<<" ";
cout<<endl;
}
void test01(){ //测试int数组
int a[5]={2,3,5,1,4};
print(a,5);
mysort(a,5);
print(a,5);
}
void test02(){ //测试char数组
char a[]="bbsajasd";
int len=sizeof(a)/sizeof(char)-1;
print(a,len);
mysort(a,len);
print(a,len);
}
int main() {
test01();
test02();
return 0;
}
【运行结果】