C++函数模版和类模版基础
来源:互联网 发布:药源网手机数据库 编辑:程序博客网 时间:2024/05/16 16:04
模版把函数或类要处理的数据类型参数化,表现为参数的多态性。模版用于表达逻辑结构相同,且具体数据元素类型不同的数据对象的通用行为,从而使得程序可以从逻辑功能上抽象,把被处理的对象(数据)类型作为参数传递。
函数模版参考代码:
#include <iostream>using namespace std;template <class T> //<>中也可以写成<typename T>,效果是一样的。T _min(T x,T y) //注意所起的函数名不能和原有库中的函数名冲突,否则编译报错。{ if(x<y){ return x; }else{ return y; }}int main(){ int n1=2,n2=10; double d1=1.5,d2=5.6; cout << "较小整数:"<< _min(n1,n2) << endl; cout << "较小实数:"<< _min(d1,d2) << endl; return 0;}
运行结果截图:
--------------------------------------------------------------------------------------------------------------------------------------
类模版参考代码:
#include <iostream>using namespace std;template <class T>class Array{ int size; T *aptr; //T为类型参数public: Array(int slots=1) { size=slots; aptr=new T[slots]; //为动态数组分配内存空间 } void fill_Array(); void disp_Array(); ~Array() { delete [] aptr; }}; template <class T>void Array<T>::fill_Array(){ cout << "(输入" << size << "个数据)" << endl; for ( int i=0;i<size;i++) { cout << " 第" << i+1 << "个数据:"; cin >> aptr[i]; }}template <class T>void Array<T>::disp_Array(){ for (int i=0;i<size;i++) { cout << aptr[i] << " "; } cout << endl;}int main(){ Array<char> ac(5); //Array<char>为模板类,ac(5)定义模板类的对象 cout << "填充一个字符数组"; ac.fill_Array(); cout << "数组的内容是:"; ac.disp_Array(); Array<double> ad(3); //Array<double>为模板类,ad(3)定义模板类的对象 cout << "填充一个双精度数组:" << endl; ad.fill_Array(); cout << "数组的内容是:"; ad.disp_Array();}
运行结果截图:
以上代码在G++中编译运行成功。
(-----------完-----------)
- C++函数模版和类模版基础
- 函数模版和类模版
- 函数模版和类模版
- C++ 基础之 "模版函数","类模版"
- 一个函数模版和类模版实例
- C++之函数模版和类模版
- 函数模版、类模版、类模版和宏
- 函数模版和模版函数,类模版和模版类的区别
- 模版——函数模版、类模版
- 类模版中函数模版
- 函数模版与类模版
- 基础母函数模版
- C语言不支持函数模版和类模板的使用
- C++template--函数模版
- 【c++】函数模版
- 【C++】认识模版函数
- 类模版和函数模版需要注意的
- 类模版和函数模版需要注意的
- 项目管理之敏捷开发-Scrum应用实战(二)
- 深入浅出之正则表达式(二)
- Eclipse+uDig SDK开发平台搭建
- 树莓派驱动3G网卡上网
- 我也会的———用结构体计算
- C++函数模版和类模版基础
- chromium之content_shell源代码分析(二)
- C语言中的指针加减偏移量
- uva 10129 - Play on Words
- java打印对象地址防止递归
- oracle各种账号解锁方法
- ecmall语言文件的加载使用流程
- windows xp下如何添加开机自启动的程序
- C#两种获取灰度图像的方法