模板来设计模板函数和模板类
来源:互联网 发布:古剑奇谭网络版 知乎 编辑:程序博客网 时间:2024/06/16 14:55
模板功能提供了在函数和类中将类型作为参数的能力,让通用的模板函数或者模板类成为现实。模板函数或者模板类声明如下:
template<typename T>-------------模板前缀;T为类型参数,可以是常见任何类型
模板函数定义如下:
template<typename T>
返回类型 函数名(T 参数....){
operations...(可以定义T类型变量)
}
模板类声明:
template<typename T>
class 类名{
返回类型 函数名(T 参数....)};
模板类声明后,分开,进行类定义:
template<typename>
返回类型 类名<T>::函数名(
T 参数....){
operations...(可以定义T类型变量)
}
比如定义一个T类型的模板类stack,可以是int,double,string:
#ifndef A#define Atemplate<typename T>class stack{private: T ele[100];int size;public:stack(){size=0;}bool empty();T peek();void push(T x);T pop();int getsize(){return size;}};//类声明template<typename T>bool stack<T>::empty(){if(size==0) return true;else return false;}template<typename T>T stack<T>::peek(){if(empty()) throw runtime_error("empty");else return ele[size-1];}template<typename T>void stack<T>::push(T x){ele[size++]=x;}template<typename T>T stack<T>::pop(){if(empty()) throw runtime_error("empty");else return ele[--size];}//类定义#endif主函数调用:
#include"15.h"template<typename T>void prt(stack<T> &ee){while(!ee.empty()){try{cout<<ints.pop()<<" ";}catch(exception&e){cout<<e.what()<<endl;}}cout<<endl;}//模板函数int main(){stack<int> ints;for(int i=0;i<10;i++)ints.push(i);prt(ints);stack<string> ss;ss.push("\"beijing\"");ss.push("\"shanghai\"");ss.push("\"nanjing\"");prt(ss);system("pause");return 0;}
0 0
- 模板来设计模板函数和模板类
- 模板函数和模板类
- 函数模板和类模板
- 类模板和函数模板
- 函数模板和类模板
- 类模板和函数模板
- 模板函数和类模板
- 函数模板 和类模板
- 函数模板和类模板
- 函数模板和类模板
- 函数模板和类模板
- 类模板和函数模板
- 函数模板和类模板
- 函数模板和类模板
- 函数模板和类模板
- 函数模板和类模板
- 模板的概念 ---模板分两类:函数模板和类模板
- 模板的概念 ---模板分两类:函数模板和类模板
- jboss secure password
- metasploit 渗透测试笔记(meterpreter篇)
- Pav Metro Store OpenCart 自适应主题模板 ABC-0215
- 管理经济学
- c/c++获取系统时间
- 模板来设计模板函数和模板类
- 锤子手机失败的原因:错误的定位
- POJ 2599 Largest Rectangle in a Histogram(DP&单调栈)
- 内网渗透随想
- 运筹学
- ios项目真机调试时图片不能显示
- 2月29日
- 轮盘赌算法
- Myeclipse 代码无法更新