c++ 模板类
来源:互联网 发布:mac口红吧 编辑:程序博客网 时间:2024/06/05 18:56
模板类
/* * MyStack.h * * Created on: 2014-3-24 * Author: Administrator */#ifndef MYSTACK_H_#define MYSTACK_H_#include "iostream"template<class Item>class MyStack {public:MyStack();void add(const Item&);void show();virtual ~MyStack();private:Item item[100];int top;};template<class Item> //模板方法MyStack<Item>::MyStack() {top = 0;}template<class Item>MyStack<Item>::~MyStack() {top = 0;}template<class Item>void MyStack<Item>::add(const Item& ni) {item[top++] = ni;}template<class Item>void MyStack<Item>::show() {using namespace std;for (int var = 0; var < top; ++var) {cout << "var:" << var<<",value:" << item[var];}cout << endl;}#endif /* MYSTACK_H_ */
数组大小动态生成
/* * MyStack.h * * Created on: 2014-3-24 * Author: Administrator */#ifndef MYSTACK2_H_#define MYSTACK2_H_#include "iostream"template<class Item>class MyStack2 {public:MyStack2(int _size);void add(const Item&);void show();virtual ~MyStack2();private:Item *item;int top;int size;};template<class Item>MyStack2<Item>::MyStack2(int _size) :size(_size) {top = -1;item = new Item[size];}template<class Item>MyStack2<Item>::~MyStack2() {top = -1;delete[] item;}template<class Item>void MyStack2<Item>::add(const Item& ni) {if (++top < size) {item[top] = ni;}else{top=size;std::cout<<"full"<<std::endl;}}template<class Item>void MyStack2<Item>::show() {using namespace std;for (int var = 0; var <top; ++var) {cout << "var:" << var << ",value:" << item[var]<<endl;}cout << endl;}#endif /* MYSTACK_H_ */
//MyStack<string> my;//my.add("Aba");//my.show();//MyStack<int> my1;//my1.add(1);//my1.show();//MyStack<const char *> my2;//my2.add("abc");//my2.show();MyStack2<const char *> my2(2);my2.add("abc");my2.add("abc");my2.add("abc");my2.add("abc");my2.add("abc");my2.show();
表达式参数模板
/* * MyStack3.h * * Created on: 2014-3-24 * Author: Administrator */#ifndef MYSTACK3_H_#define MYSTACK3_H_#include <iostream>template<class TP, const int n>class MyStack3 {public:explicit MyStack3(const TP initValue);TP operator[](const int index);~MyStack3();private:TP items[n];};template<class TP, const int n>MyStack3<TP, n>::MyStack3(const TP initValue) {for (int var = 0; var < n; var++) {items[var] = initValue;}}template<class TP, const int n>TP MyStack3<TP, n>::operator[](const int index) {return items[index];}template<class TP, const int n>MyStack3<TP, n>::~MyStack3() {}#endif /* MYSTACK3_H_ */
0 0
- 【c/c++】类模板
- 【C/C++】模板类
- 【c++】模板和模板类
- C/C++:函数模板与类模板
- [C/C++]模板函数与模板类
- c++vector模板类
- c++vector模板类
- c++:类模板
- [C++]类模板
- C++:类模板
- 【c++】类模板
- C++stack模板类
- 类模板与模板类(C++)
- C++,template,类模板和函数模板
- C++:函数模板、类模板及其特化
- C++---函数模板与类模板
- Linux C/C++ 模板:类模板(主模板)
- C/C++_log2000_函数模板与类模板笔记1
- jar 转换成dll
- 【算法】 动态规划 最佳路径求解
- jquery 操作select
- 一个控制台类小游戏
- 《读《金色的鱼钩》有感》
- c++ 模板类
- HTML5 移动开发入门知识点
- 创建or1200最小SOPC,并进行仿真
- Android调试.so库常用工具
- Android自动化测试中AccessibilityService获取控件信息(1)
- MYSQL启用日志,查看日志
- struts2在项目中的应用之普通上传
- SSH整合过程中出现找不到org.springframework.web.context.ContextLoaderServlet的错误
- 第四章 命令编程(一)