我通过制作一个简单的纸牌游戏来学习数据结构。在这段代码中,我有一个类Player和一个包含游戏中所有玩家的队列。
队列的实现:
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;
}这是玩家的课程:
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()时没有匹配函数’,此错误位于实现队列构造函数的行中。
发布于 2019-05-29 13:14:51
这就是它说的(和模板没有什么关系)。
Queue<Player>有一个成员Player entry[maxsize],它要求默认构造maxsize Player对象。
但是由于Player没有默认的构造函数,这是不可能的。
当然,How about a nice vector instead?并不真正需要/想要预先分配Player的最大数量。
https://stackoverflow.com/questions/56361474
复制相似问题