//使用通用类
//writed by swords 2005/3/15
#include<iostream.h>
const int SIZE=100;
template<class SType>
class stack
{
SType stck[SIZE];
int tos;
public:
stack(void);
~stack(void);
void push(SType i);
SType pop(void);
};
template<class SType>stack<SType>::stack()
{
tos=0;
cout<<"stack initialized."<<endl;
}
template<class SType>stack<SType>::~stack()
{
cout<<"stack destroyed."<<endl;
}
template<class SType>void stack<SType>::push(SType i)
{
if(tos==SIZE)
{
cout<<"stack is full."<<endl;
return;
}
stck[tos++]=i;
}
template<class SType>SType stack<SType>::pop(void)
{
if(tos==0)
{
cout<<"stack underflow."<<endl;
return 0;
}
return stck[--tos];
}
void main()
{
stack<int> a;
stack<double> b;
stack<char> c;
int i;
a.push(1);
a.push(2);
b.push(99.5);
b.push(-15);
cout<<a.pop()<<" "<<a.pop()<<" "<<b.pop()<<" "<<b.pop()<<endl;
for(i=0;i<10;i++)
c.push((char)'A'+i);
for(i=0;i<10;i++)
cout<<c.pop();
cout<<endl;
}
该博客展示了使用C++实现通用类栈的代码。定义了模板类stack,包含栈的初始化、销毁、入栈和出栈操作。在main函数中创建不同数据类型的栈对象,进行入栈和出栈操作并输出结果,体现了通用类在C++中的应用。
597

被折叠的 条评论
为什么被折叠?



