十六、类与对象:类模板
来源:互联网 发布:linux应用增量更新 编辑:程序博客网 时间:2024/05/15 21:18
和函数模板类似,都是为了提高代码的复用性,这是面向对象设计中软件开发重要的思想之一。定义如下:template<模板参数表>类声明建立对象时的声明:模板<模板参数表>对象名1,….对象名n;下面直接上代码:
#include <iostream>#include <string>using namespace std;struct Person //定义一结构体类型{int id;string name;};template<typename T> //该类用于存储数据类型class Store{public:Store(void); //无参构造函数T GetItem(); //取得存储值void putItem(T t); //存储数据private:T item; //存储项目int isStore; //是否存储标志};template<typename T>Store<T>::Store(void):isStore(0) //默认未存储{}template<typename T>T Store<T>::GetItem() {if(isStore==0){cout<<"no data"<<endl;exit(1);}elsereturn item;}template<typename T>void Store<T>::putItem(T t){item=t;isStore=1;}int main(){//Person p={1,"tqtiimy")}; //vc6报错,string不能用初始值列表初始化//一开始也觉得奇怪,后面查后才知道是前期编译器不支持,升级之后是没有问题的Person p; //创建一结构体对象p.id=1;p.name="tqtiimy";Store<int> s1; //以int类型创建Store对象Store<Person> s2; //以Person结构体类型s1.putItem(22);s2.putItem(p); cout<<s1.GetItem()<<endl; //这里Store类的复用性明显提高了,根据实际需要生成不同模板cout<<s2.GetItem().name<<endl;return 0;}
0 0
- 十六、类与对象:类模板
- C++编程入门系列之十六(类与对象:类模板)
- 类与对象:类模板
- 类模板与函数对象
- 类模板与板书对象2
- (十六)模板与泛型编程
- 面向对象与C++程序设计-函数模板与类模板学习笔记
- Java基础:第二十六讲 从对象抽象出类
- python cookbook学习笔记十六:类和对象(1)
- 函数模板与模板函数 类模板与模板类
- 类模板与模板类 &&函数模板与模板函数
- 类模板与模板类
- 类模板与模板类
- 类模板与模板类
- 类模板与模板类
- 模板类 与 类模板
- 类模板与模板类
- 类模板与模板类
- 监听网口变化
- Linux系统及其常用软件快捷键
- Android 5.0 Telephony关键类初始化和相互关系
- 命令行压缩工具7z.exe使用详解
- 《Javascript高级程序设计》面向对象的程序设计
- 十六、类与对象:类模板
- java反射包Method类学习小例子
- Qt for Android/iOS - Animated GIF(动态GIF图片)
- 年轻?大有所为!——问题集二 元素居中
- 文章标题
- 前沿技术:FaceBook推出的Android图片加载库Fresco
- 【内部排序】七:堆排序(Heap Sort)详解与代码(超详细注释版)
- kill Process based on port number
- Emacs Lisp基础数据类型