C++中的泛型程序设计---函数模板
2012-08-15 09:58
183 查看
模板是C++中功能最为强大的软复用的一种方式,通过函数模板和类模板,我们只需要写一段特定的模板代码,即可以实现不同类型相应功能函数或类的一整套实现。不需要针对不同类型编写多个函数重载(这里就极大的减少了相应代码的编写)。当编译器遇到处理不同的类型时,会调用相应的函数模板来特化自动相应类型的目标代码(也就是说编译器帮我们完成了不同类型的函数重载编写工作).
函数模板的定义:
所有函数模板的定义都由关键字 template开始,后面跟着<typename T>模板形参列表。模板型参列表中则是具体的模板型参(T)。T就代表了所有基本类型和自定义类型。模板型参T之前一定要加上相应的关键字typename或class来指出相应的模板型参。
例:模板函数测试
#include <iostream>
#include <iomanip>//设置相应的流格式
using namespace std;
template <typename T>
void print(const T * const ptr,int count){//接收二个常量
for(int i = 0; i < count; i++ )
cout<<"ptr["<<i<<"]="<<ptr[i]<<" ";;//打印相应的数组元素
cout<<endl;//换行
}
int main(){
const int acount = 5;
const int bcount = 6;
const int ccount = 6;
int a[acount] = {1,2,3,4,5};
double b[bcount] = {1.1,2.2,3.3,4.4,5.5,6.6};
char c[ccount] = "hello";//初始化相应的字符数组
cout<<"first:"<<endl;
print(a,acount);
cout<<endl;
cout<<"second :"<<endl;
print(b,bcount);
cout<<endl;
cout<<"third :"<<endl;
print(c,ccount);
}
转自我的个人技术网站
函数模板的定义:
所有函数模板的定义都由关键字 template开始,后面跟着<typename T>模板形参列表。模板型参列表中则是具体的模板型参(T)。T就代表了所有基本类型和自定义类型。模板型参T之前一定要加上相应的关键字typename或class来指出相应的模板型参。
例:模板函数测试
#include <iostream>
#include <iomanip>//设置相应的流格式
using namespace std;
template <typename T>
void print(const T * const ptr,int count){//接收二个常量
for(int i = 0; i < count; i++ )
cout<<"ptr["<<i<<"]="<<ptr[i]<<" ";;//打印相应的数组元素
cout<<endl;//换行
}
int main(){
const int acount = 5;
const int bcount = 6;
const int ccount = 6;
int a[acount] = {1,2,3,4,5};
double b[bcount] = {1.1,2.2,3.3,4.4,5.5,6.6};
char c[ccount] = "hello";//初始化相应的字符数组
cout<<"first:"<<endl;
print(a,acount);
cout<<endl;
cout<<"second :"<<endl;
print(b,bcount);
cout<<endl;
cout<<"third :"<<endl;
print(c,ccount);
}
转自我的个人技术网站
相关文章推荐
- 8、泛型程序设计与c++标准模板库2.5容器适配器
- 关于泛型程序设计和c++标准模板库
- 8、泛型程序设计与c++标准模板库1、泛型程序设计的概念和术语
- C++ 泛型程序设计 模板
- 8、泛型程序设计与c++标准模板库2、c++标准模板库中的容器
- 【C++的探索路18】泛型程序设计与模板之细节
- 【C++的探索路19】泛型程序设计与模板之练习题
- 【C++的探索路17】泛型程序设计与模板之基本形式
- 8、泛型程序设计与c++标准模板库4.标准c++库中的算法
- 8、泛型程序设计与c++标准模板库2.2向量容器
- 8、泛型程序设计与c++标准模板库5.函数对象
- 8、泛型程序设计与c++标准模板库3.迭代器
- More Exceptional C++中文版试读(泛型程序设计与C++标准库)
- 8、泛型程序设计与c++标准模板库2.3双端队列容器
- 8、泛型程序设计与c++标准模板库2.4列表容器
- 【学习C++】C++程序设计教案
- <C++程序设计教程 钱能 著>例题 chapter1_9_2
- 2012年 上半年 第九周 C++程序设计 (二十七)
- c++程序设计笔记(2)
- C++编程入门系列之二十一(C++程序设计必知:类的静态成员)