title: Constructor expecting missing call to other constructor / candidate expects 1 argument, 0 provided?
body: <p>You may have seen my post yesterday about the issues I had been having with my text-based adventure game. I got all of that fixed up and added some functionality, but in adding some inventory arrays of custom Slot objects my Character object decided to stop recognizing their initialization.</p>
  
  <p>Here's the basic code:</p>
  
  <p><strong>Character Class</strong></p>
  
  <pre><code>class Character {
      InvSlot inventory[30];
      FoodSlot foodInv[10];
      //Declaring armor slots, class, race, stats, etc
  
  public:
      //All of the function declarations
  </code></pre>
  
  <p><strong>Character Constructor</strong></p>
  
  <pre><code>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.
  }
  </code></pre>
  
  <p><strong><code>InvSlot</code> and <code>FoodSlot</code> Structs w/ Basic Empty Slots</strong></p>
  
  <pre><code>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
  </code></pre>
  
  <p><strong>The Errors</strong></p>
  
  <p>First of all, the struct declarations and constructor definitions for <code>InvSlot</code> and <code>FoodSlot</code> are giving me the issue of <code>candidate expects 1 argument, 0 provided</code>. Second of all, the actual errors are on the final initializer in the <code>Character</code> constructor (before the curly braces): <code>no matching function for call to 'FoodSlot::FoodSlot()'</code> and <code>no matching function for call to 'InvSlot::InvSlot()'</code>. The thing is, I have already initialized the arrays in the curly braces and they aren't returning any errors themselves. On top of this, these two are the only two parameters for the character class which even use the <code>InvSlot</code> or <code>FoodSlot</code> objects. Can anybody help figure out what's going on, and how to fix it? I already checked other similar questions but they didn't help. Let me know if I need to add anything or if I missed something when typing up this post.</p>
  
  <p>Thanks in advance!</p>