为堆栈创建默认构造函数

Creating a default constructor for a stack

本文关键字:构造函数 默认 创建 堆栈      更新时间:2023-10-16

我目前正在为类开发一个项目,该项目要求我们实现一个用于整数用作计算器的堆栈。我在使用默认构造函数时遇到问题,并且想知道我缺少什么。

OperandStack(int stackSize)
    {
        if (stackSize<=0)
            {cout<<"Must be positive"<<endl;}
        this->capacity=capacity;
        s =new double[stackSize];
        t=0;
    }

感谢您的帮助。

" 我在使用默认构造函数时遇到问题,想知道我错过了什么。"

默认构造函数不采用任何参数,或为所有参数声明默认值。引用链接的参考文档

默认构造函数

默认构造函数

是可以在没有参数的情况下调用的构造函数(使用空参数列表定义,或使用为每个参数提供的默认参数定义)。

因此,您的实现应如下所示:

class OperandStack {
public:
     OperandStack(int stackSize = 10) 
                             // ^^^^ declare a default value
     // Better use a member initializer list, instead of initializing claas
     // members inside the constructor's body:
     : capacity(stackSize), s(new double[stackSize]), t(0) {
        if (stackSize<=0) {cout<<"Must be positive"<<endl;}
        // ^^^^ Better use an exception instead of this
        //      output statement (it's OK for basic debugging)
     }
};