2 li584528142 li584528142 于 2016.09.24 21:40 提问

编程时,遇见no appropriate default constructor available

class stack
{
public:
stack(int s);//创建栈的实例
~stack(); //该实例消亡
void clear(); // 变为空栈
bool push(const T item);// item入栈,成功则返回真,否则返回假
bool pop(T &item); //返回栈顶内容并弹出,成功返回真,否则返回假
double tops(T &item); //返回栈顶内容但不弹出
bool isEmpty(); // 若栈已空返回真
bool isFull(); // 若栈已满返回真
};
template
class arrstack : public stack
{
private: // 栈的顺序存储
int msize; // 栈中最多可存放的元素个数

int top; // 栈顶位置,应小于mSize

T *st; // 存放栈元素的数组
public: // 栈的运算的顺序实现

arrstack(int size) // 创建一个给定长度的顺序栈实例

{
msize = size; top = -1; st = new T[msize];
}

arrstack():stack(){top = -1;} // 创建一个顺序栈的实例 //错误'stack' : no appropriate default constructor available
~arrstack() {delete []st; } // 析构函数

void clear() {top = -1;} // 清空栈内容

};

1个回答

caozhy
caozhy   Ds   Rxr 2016.09.24 22:15
已采纳

arrstack():stack()
这里你调用了stack(),无参数构造函数,在stack类中,你的构造函数是stack(s),要么你调用它,要么你再定义一个无参数的构造函数。

Csdn user default icon
上传中...
上传图片
插入图片