我正在创建一个简单的纸牌游戏基础,现在我正在处理创建代表每个玩家的对象的类。不过构造函数似乎有问题:“Spelare”的构造函数必须显式初始化引用成员“leken”
class Spelare {
public:
Spelare(Kortbunt& kortlek, bool ar_dator) {leken = kortlek; dator = ar_dator;} //Constructor
int spela();
private:
Kortbunt hand; //The cards in the players hand
Kortbunt& leken; //The cards on the table
const bool dator; //Is this player a computer?
};
最佳答案
将构造函数更改为:
Spelare(Kortbunt& kortlek, bool ar_dator) : leken(kortlek), dator(ar_dator) {}
问题是引用一旦被声明和初始化就不能重新赋值。您的构造函数尝试声明但不初始化引用,然后分配给它 - 但失败了。
您需要通过构造函数的初始化列表来初始化引用。您还需要对 dator
执行相同的操作,因为它是 const
- 但它通常只是一种很好的做法。
关于c++ - 构造函数初始化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22301745/