'堆栈::ñ' :无法访问在类' stack'中声明的私有成员

时间:2015-04-15 02:51:55

标签: c++

class stack
{
    int n;//problem
    char a[100];//problem
    int top;
   public:
    bool isempty()
      {
        return top == -1;
      }

        stack()
      {
            top=-1;
      }

      bool push(const char &c)
      {
        if(top == 100)
        {
            return false;
        }

        top++;
        a[top] = c;

        return true;

      }

      bool pop(char &c)
      {
        if(top == -1)
        {
            return false;
        }

         c = a[top];
         top--;
      }

      char get_top()const
      {
        return a[top];
      }

};
  

c:\ users \ tri \ documents \ visual studio   2010 \ projects \ assignment01 \ assignment01 \ code.cpp(73):错误C2248:   '堆栈::ñ' :无法访问在类' stack'中声明的私有成员1 GT;   c:\ users \ tri \ documents \ visual studio   2010 \ projects \ assignment01 \ assignment01 \ headerfile.h(20):见   声明' stack :: n' 1 GT; C:\用户\三\文档\ Visual   studio 2010 \ projects \ assignment01 \ assignment01 \ headerfile.h(19):见   声明'堆栈' 1> c:\ users \ tri \ documents \ visual studio   2010 \ projects \ assignment01 \ assignment01 \ code.cpp(76):错误C2248:   '堆栈::ñ' :无法访问在类' stack'中声明的私有成员1 GT;   c:\ users \ tri \ documents \ visual studio   2010 \ projects \ assignment01 \ assignment01 \ headerfile.h(20):见   声明' stack :: n' 1 GT; C:\用户\三\文档\ Visual   studio 2010 \ projects \ assignment01 \ assignment01 \ headerfile.h(19):见   声明'堆栈' 1> c:\ users \ tri \ documents \ visual studio   2010 \ projects \ assignment01 \ assignment01 \ code.cpp(78):错误C2248:   '堆栈::一个' :无法访问在类' stack'中声明的私有成员1 GT;   c:\ users \ tri \ documents \ visual studio   2010 \ projects \ assignment01 \ assignment01 \ headerfile.h(21):见   声明'堆栈:: a' 1 GT; C:\用户\三\文档\ Visual   studio 2010 \ projects \ assignment01 \ assignment01 \ headerfile.h(19):见   声明'堆栈' 1> c:\ users \ tri \ documents \ visual studio   2010 \ projects \ assignment01 \ assignment01 \ code.cpp(79):错误C2248:   '堆栈::一个' :无法访问在类' stack'中声明的私有成员1 GT;   c:\ users \ tri \ documents \ visual studio   2010 \ projects \ assignment01 \ assignment01 \ headerfile.h(21):见   声明'堆栈:: a' 1 GT; C:\用户\三\文档\ Visual   studio 2010 \ projects \ assignment01 \ assignment01 \ headerfile.h(19):见   声明'堆栈'

2 个答案:

答案 0 :(得分:0)

没有看到code.cpp,我的猜测是:

  1. 您正试图从课外访问私人会员。这是不可能的。将它们标记为公共,或在类中构建公共函数以访问它们。
  2. 您可能正在尝试访问非静态的类成员。如果他们不是静态的,则无法使用stack::访问它们。您必须首先实例化stack类型的对象,然后您可以使用应用于该对象的.访问器来访问它们。

答案 1 :(得分:0)

我猜你做过这样的事情:

Stack s;
int num = s.n;
char c = s.a[11];

您不能直接评估课外的私人会员。我们需要在堆栈中随机评估变量。