首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用个性化类创建个性化堆栈,但出现错误

使用个性化类创建个性化堆栈,但出现错误
EN

Stack Overflow用户
提问于 2020-09-30 13:46:53
回答 1查看 62关注 0票数 0

嗨,我想用模板制作我的个人堆栈类,用个人类创建一个堆栈。

代码语言:javascript
复制
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;
}

我想用卡片的方法做一个堆栈

代码语言:javascript
复制
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)时,它工作得很好;可能有什么问题?

感谢您的阅读。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-30 13:54:37

这是你写的

代码语言:javascript
复制
deck::deck(){
    stack<card> decklist(card(1,1));
}

但是,这只是在构造函数中声明了一个名为decklist的变量,它不同于类中的decklist

要初始化类中的decklist,您应该使用一个初始化列表。像这样

代码语言:javascript
复制
deck::deck() : decklist(card(1,1)) {
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64138957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档