嗨,我想用模板制作我的个人堆栈类,用个人类创建一个堆栈。
template <class T>
class stack{
public:
stack(T);
~stack();
void insert(T);
T pop();
void printstack();
private:
int top;
int capacity;
T *list;
};
template <class T>
stack<T>::stack(T first){
top=0;
capacity=10;
list = new T[capacity];
memset(cards, 0, sizeof(T)*10);
list[0]=first;
}我想用卡片的方法做一个堆栈
class node{
public:
node(int i=0,int j=0);
~node();
private:
int node_num;
int nodenum;
};
class list{
public:
list();
~list();
private:
stack<node> nodelist;
};
list::list(){
stack<node> nodelist(node(1,1));
}但是当我运行代码时,会出现错误。
“构造函数必须显式初始化没有默认构造函数的'decklist‘成员”
当我使用堆栈deck1(1)时,它工作得很好;可能有什么问题?
感谢您的阅读。
发布于 2020-09-30 13:54:37
这是你写的
deck::deck(){
stack<card> decklist(card(1,1));
}但是,这只是在构造函数中声明了一个名为decklist的变量,它不同于类中的decklist。
要初始化类中的decklist,您应该使用一个初始化列表。像这样
deck::deck() : decklist(card(1,1)) {
}https://stackoverflow.com/questions/64138957
复制相似问题