首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类模板“调用Player::Player()”的无匹配函数

类模板“调用Player::Player()”的无匹配函数
EN

Stack Overflow用户
提问于 2019-05-29 13:11:55
回答 1查看 88关注 0票数 0

我通过制作一个简单的纸牌游戏来学习数据结构。在这段代码中,我有一个类Player和一个包含游戏中所有玩家的队列

队列的实现:

代码语言:javascript
复制
template < typename T >
    class Queue{
    int count;
    int front, rear;
    T entry[maxsize];
    public:
    Queue();
    bool empty();
    errorcode Append(T item);
    errorcode serve();
    errorcode retreive(T &item);
    };

队列构造函数:

代码语言:javascript
复制
template <typename T>
    Queue<T>::Queue(){
        count = 0;
        rear = maxsize-1;
        front=0;
    }

这是玩家的课程:

代码语言:javascript
复制
       class Player {
            int number;
            List<string> set;
        public:
            Player(int number, List<string> set) {
                this->number = number;
                this->set = set;
            }
            void draw();
            string play();
            .
            .
            .
        };

在主函数中,我使用以下代码声明队列:

代码语言:javascript
复制
Queue<Player> pl;

但是我得到了错误‘调用Player::Player()时没有匹配函数’,此错误位于实现队列构造函数的行中。

EN

回答 1

Stack Overflow用户

发布于 2019-05-29 13:14:51

这就是它说的(和模板没有什么关系)。

Queue<Player>有一个成员Player entry[maxsize],它要求默认构造maxsize Player对象。

但是由于Player没有默认的构造函数,这是不可能的。

当然,How about a nice vector instead?并不真正需要/想要预先分配Player的最大数量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56361474

复制
相关文章

相似问题

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