无法从类中的其他函数访问同一类的变量

时间:2017-12-23 19:18:17

标签: c++ class dynamic-memory-allocation

我无法访问我的' arr'来自类中其他push和pop函数的变量。得到错误" ' ARR'未在此范围内宣布"。 它应该可以在课堂上访问。我可以静态地分配内存作为解决方案,但我想试试这个。

该程序提供反向抛光表示法。
输入
1
(A + B)
O / P
ab +

#include <iostream>
#include <string>
using namespace std;


class stackOperations{
  private:
    int top = -1 ;
  public:
  void allocate(int len){
    char *arr = new char[len] ;
  }
  void deallocate(){
    delete []arr ;
  }
  void push(char x){
      top++;
      arr[top] = x ;
  }
  char pop()
  {
      char temp;
      temp = arr[top];
      top--;
      return temp;
  }
};

void RPN(string exp)
{
    stackOperations st ;
    int len = exp.length();
    st.allocate(len);
    for(int i=0; i <=len; i++){
        char tmp ;
        tmp = exp[i];
        if(tmp=='('){
            st.push('(');
        }
        else if(tmp==')'){
            char y = st.pop();
            while(y != '('){
                cout << y ;
                y = st.pop();
                }
            }
        else if(int(tmp) >= 97 && int(tmp) <= 122 ) {
            cout << tmp ;   
        }
        else {
            st.push(tmp);
        }

    }
    st.deallocate();
}

int main() {
    int test ;
    string exp ;
    cin >> test;
    cin.ignore();
    while(test!=0){
        getline(cin, exp);
        RPN(exp);
        cout << endl ;
        test--;
    }
    return 0;
}

1 个答案:

答案 0 :(得分:0)

class stackOperations{
    private:
          int top = -1 ;
          char *arr;
     public:
      void allocate(int len){
           arr = new char[len] ;
  }