你可能昨天看到了我关于我在基于文本的冒险游戏中遇到的问题的帖子。我修复了所有这些并添加了一些功能,但是在添加一些自定义 Slot 对象的库存数组时,我的 Character 对象决定停止识别它们的初始化。
这是基本代码:
字符类
class Character {
InvSlot inventory[30];
FoodSlot foodInv[10];
//Declaring armor slots, class, race, stats, etc
public:
//All of the function declarations
字符构造器
Character::Character() :
//Initializing armor slots, class, race, stats, etc to default values
{
InvSlot inventory[30] = {emptyInv,...,emptyInv}; //The other 28 values are omitted here.
FoodSlot foodInv[10] = {emptyFood,...,emptyFood}; //The other 8 values are omitted here.
}
InvSlot
和FoodSlot
带基本空槽的结构
struct InvSlot {
bool isUsed;
Item item;
InvSlot(Item i);
};
struct FoodSlot {
bool isUsed;
Item item;
FoodSlot(Food f);
};
InvSlot::InvSlot(Item i) : isUsed(false), item(i){}
InvSlot emptyInv = InvSlot(NoItem); //NoItem is a basic object of type Item which works
FoodSlot::FoodSlot(Food f) : isUsed(false, food(f), quantity(0){}
FoodSlot emptyFood = FoodSlot(NoFood); //Same deal with NoFood
错误
首先, and 的结构声明和构造函数定义InvSlot
给FoodSlot
了我candidate expects 1 argument, 0 provided
. 其次,实际错误在Character
构造函数中的最终初始化程序上(在花括号之前):no matching function for call to 'FoodSlot::FoodSlot()'
和no matching function for call to 'InvSlot::InvSlot()'
. 问题是,我已经初始化了花括号中的数组,它们本身并没有返回任何错误。最重要的是,这两个是字符类的仅有的两个参数,甚至使用了InvSlot
orFoodSlot
对象。任何人都可以帮助弄清楚发生了什么,以及如何解决它?我已经检查了其他类似的问题,但它们没有帮助。让我知道是否需要添加任何内容,或者在输入此帖子时是否遗漏了某些内容。
提前致谢!