Неидентифицируемая функция класса Copy - PullRequest
0 голосов
/ 18 сентября 2018

Итак, я сейчас работаю над текстовой RPG и столкнулся со странной проблемой, связанной с инвентарем персонажа. Я получаю следующую ошибку:

qualified-id in declaration before '(' token

Эта ошибка находится в следующей строке кода в моем Inventory.cpp классе:

void Inventory::addItem(Item *I){...}

Конечно, я понимаю, что этой информации недостаточно, поэтому здесь приведены все кодировки для Inventory.h и Inventory.cpp:

В Inventory.h:

 #ifndef INVENTORY_H
 #define INVENTORY_H

 #include "Item.h"
 #include <string>

 const int BACKPACK_SIZE = 16;

 class Inventory
 {
     public:
         Inventory();

         void addItem(Item *I);

         std::string getInventory();

         Item *backpack[BACKPACK_SIZE];
     protected:

     private:
 };

 #endif // INVENTORY_H

В Inventory.cpp:

#include "Inventory.h"


 Inventory::Inventory(){
     for(int i = 0; i < BACKPACK_SIZE; i++){
         backpack[i] = nullptr;
     }
 }

 std::string Inventory::getInventory(){
     std::string allItems = "";
     int counter = 1;
     for(int i = 0; i < BACKPACK_SIZE; i++){
          if(backpack[i] == nullptr){
             continue;
          }
          else{
              allItems += (counter + ".) " + backpack[i]->getName() + "\n");
              counter += 1;
          }

     return allItems;
 }

 void Inventory::addItem(Item *I){ //THIS LINE IS WHERE THE ERROR APPEARS
     for(int counter = 0; counter < BACKPACK_SIZE; counter++){
         if(backpack[counter] == nullptr){
             backpack[counter] == I;
             break;
         }
     }
 }

Я провел свое исследование, но я просто не могу понять, что на земле я делаю неправильно. Любая помощь высоко ценится! Примечание: было бы полезно, если бы люди не тратили свое время на комментирование других вещей, которые я мог бы изменить в своем кодировании, а скорее придерживались этой конкретной проблемы. Спасибо!

1 Ответ

0 голосов
/ 18 сентября 2018

Этот вопрос, скорее всего, будет закрыт как опечатка, но я хотел бы проиллюстрировать комментарий @john, который может вам помочь.(Также отвечая на ваш вопрос)

 std::string Inventory::getInventory()
 {
     std::string allItems = "";
     int counter = 1;
     for(int i = 0; i < BACKPACK_SIZE; i++)
     {
          if(backpack[i] == nullptr)
          {
             continue;
          }
          else
          {
              allItems += (counter + ".) " + backpack[i]->getName() + "\n");
              counter += 1;
          }

     return allItems;
 }

Ваш код был переформатирован здесь, так что открывающая и закрывающая скобки имеют отступ на один и тот же уровень.

Вы можете заметить, что гораздо более очевидно, чтоВы получаете свою ошибку из-за отсутствия скобки.

...