为了账号安全,请及时绑定邮箱和手机立即绑定

c++下标运算符重载出错

c++下标运算符重载出错

C++
慕雪9123221 2019-03-19 18:18:34
#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 关注
  • 1041 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信