无法将值分配给类中的int

时间:2019-04-19 22:46:47

标签: c++ stack

我设置了veriable,但是当我调用它时,它带有不同的veriable。 没有for循环就可以正常工作。但是当我添加for循环时,问题显示出来了。

#define Size 20

class Stack{
private:
    int stack[Size];
    int top;
public:
    Stack();
    ~Stack();
    void info();

};

Stack::Stack(){
    cout<<"The stack is beign created"<<endl;
    cout<<"//////////////////////////"<<endl;
    top = -1; // The problem is here <<
    cout<<top<<endl;
    for(int i = 0;i <= Size;i++){
      stack[i] = 0;
    };
    cout<<top<<endl;
};

void Stack::info(){
cout<<top<<endl;
}

我的期望输出是:

The stack is beign created 
//////////////////////////  
-1   
-1  
-1 
//////////////////////////
The stack is beign destroyed

当前代码的输出为:

The stack is beign created 
//////////////////////////  
-1 
0  
0
//////////////////////////
The stack is beign destroyed

1 个答案:

答案 0 :(得分:0)

您正在超越stackSize20,您正在编写21个元素。

您的for循环条件应为i < Size,而不是i <= Size