为什么我必须在堆栈中将顶部初始化为-1两次?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我必须在堆栈中将顶部初始化为-1两次?相关的知识,希望对你有一定的参考价值。

我目前正在学习堆栈,有一件事我不明白。我必须创建两个构造函数。我不明白的是,当我的程序已经堆积了一些元素时,为什么我必须将第二个构造函数的顶部设置为-1?谢谢

public stack () { 
    Array = new Object [MAX_ELEMENTS];
    top = -1; 
}

public stack (int elements) { 
    Array = new Object [elements]; 
    top = -1; 
}
答案

为什么我必须为我的第二个构造函数将顶部设置为-1

一般情况下,您不会这样做,但是在这种情况下您会这样做,因为有两个不相互调用的独立构造函数。有几个更好的解决方案:

  1. 初始化qazxsw poi内联,而不是在构造函数中: qazxsw poi
  2. 连接构造函数: top
  3. 都。

当我的程序已经堆积了一些元素?

不,没有。它只是创建了一个你指定大小的数组。

另一答案

除了另一个答案,您还可以使用实例初始化程序:

int top = -1;

无论构造函数用户如何,都将调用它。

以上是关于为什么我必须在堆栈中将顶部初始化为-1两次?的主要内容,如果未能解决你的问题,请参考以下文章

在Python中将列表初始化为已知数量的元素[重复]

在构造函数中将数组初始化为0 [重复]

如何在c ++中的类构造函数中将整个数组初始化为单个元素

如何在swiftui中将vstack移动到屏幕顶部?

在Java中将多个变量初始化为相同的值

如何在viewmodel属性中将0格式化为空字符串