gpt4 book ai didi

c++ - 类模板 'no matching function for call to Player::Player()'

转载 作者:行者123 更新时间:2023-11-28 01:20:50 26 4
gpt4 key购买 nike

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

队列的实现:

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);
};

队列构造函数:

template <typename T>
Queue<T>::Queue(){
count = 0;
rear = maxsize-1;
front=0;
}

这是 Player 类:

       class Player {
int number;
List<string> set;
public:
Player(int number, List<string> set) {
this->number = number;
this->set = set;
}
void draw();
string play();
.
.
.
};

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

Queue<Player> pl;

但是我收到错误“没有匹配函数调用 Player::Player()”,这个错误出现在实现队列构造函数的行中。

最佳答案

这就是它所说的(与模板无关)。

Queue<Player>有成员(member)Player entry[maxsize] , 这需要 maxsize 的默认构造Player对象。

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

How about a nice vector instead?你真的不需要/不想分配最大数量的 Player无论如何,肯定是预先准备好的。

关于c++ - 类模板 'no matching function for call to Player::Player()',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56361474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com