#include<iostream>
template<typename T>
class MyStack
{
public:
MyStack(int size = 0);
~MyStack();
bool isEmpty(); //判空
bool isFull(); //判满
int StackLength(); //栈当前长度
bool push(T elem); //入栈
bool pop(T & elem); //出栈 v
oid StackTraverse(bool topdown)const; //遍历
const T & operator[](int k) const ;
T & operator[](int k);
private:
T *p_mbuffer; //申请栈空间
int m_size; //栈大小
int m_top; //栈顶};
template<typename T>
const T & MyStack<T>::operator[](int k)
const {
if (k<0 || k>StackLength())
{
cerr << "下标越界!" << endl;
}
return p_mbuffer[k];
}
template<typename T> T & MyStack<T>::operator[](int k)
{
if (k<0 || k>StackLength())
{
cer << "下标越界!" << endl;
}
return p_mbuffer[k];
}
int main(void)
{
MyStack<char> stack(30);
stack.push('s');
char ch=stack[0];//就这里会显示无法从MyStack<char> 到 char 的适当转换函数,这是哪里出错了吗
return 0;
}
2 回答
- 2 回答
- 0 关注
- 1042 浏览
添加回答
举报
0/150
提交
取消