模板类以这样的代码开头:template
template 可以用它定义一个模板类或模板函数 ,class 所对的type表示一种类型。
class看作是变量的类型名,该变量接受类型作为其值,把Type看作是该变量的名称。
将模板信息放在一个头文件中,建立stacktp.h
相关推荐:《
常见问题
》
建立源文件stacktem.cpp;
#ifndef STACKTP_H_
#define STACKTP_H_
// 建立模板
template
class Stack
{
private:
enum {MAX=10};
Type items[MAX];
int top;
public:
Stack();
bool isempty();
bool isfull();
bool push(const Type & item);
bool pop(Type & item);
};
template
Stack::Stack()
{
top=10;
}
template
bool Stack::isempty()
{
return top==0;
}
template
bool Stack::isfull()
{
return top==MAX;
}
template
bool Stack::push(const Type &item)
{
if(top
bool Stack::pop(Type & item)
{
if(top>0)
{
item=items[--top];
return true;
}
else
return false;
}
#endif #include
#include
#include
#include"stacktp.h"
using namespace std;
int main()
{
Stack st;// 创建一个空的stack,和前面的模板联系起来
char ch;
string po;
cout<<"Please enter A to add a purchase order.\n"
<<"P to precess a PO,or Q to quit."<>ch && toupper(ch)!='Q' )
{
while(cin.get()!='\n')
{
continue;
}
if(!isalpha(ch))
{
cout<<'\a';
continue;
}
switch(ch)
{
case 'A':
case 'a':cout<<"Enter a PO number to add:"<>po;
if(st.isfull())
{
cout<<"stack already full"< 