Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法识别的类函数副本_C++_Class_Pointers_Game Engine_Software Design - Fatal编程技术网

C++ 无法识别的类函数副本

C++ 无法识别的类函数副本,c++,class,pointers,game-engine,software-design,C++,Class,Pointers,Game Engine,Software Design,所以,我目前正在制作一个基于文本的RPG,我在制作角色的清单时遇到了一个奇怪的问题。我得到以下错误: 令牌前声明中的限定id 此错误位于my Inventory.cpp类中的以下代码行: 无效库存::AddItem*I{…} 当然,我意识到这还不够,所以下面是Inventory.h和Inventory.cpp的所有编码: 在清单h中: 我已经做了研究,但我根本不知道我到底做错了什么。非常感谢您的帮助!旁注:如果人们不花时间评论关于我的编码的其他我可以改变的事情,而是坚持这个特定的问题,我们将不胜

所以,我目前正在制作一个基于文本的RPG,我在制作角色的清单时遇到了一个奇怪的问题。我得到以下错误:

令牌前声明中的限定id

此错误位于my Inventory.cpp类中的以下代码行:

无效库存::AddItem*I{…}

当然,我意识到这还不够,所以下面是Inventory.h和Inventory.cpp的所有编码:

在清单h中:


我已经做了研究,但我根本不知道我到底做错了什么。非常感谢您的帮助!旁注:如果人们不花时间评论关于我的编码的其他我可以改变的事情,而是坚持这个特定的问题,我们将不胜感激。谢谢大家!

这个问题可能会以打字错误结束,但我想举例说明@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;
 }
您的代码已在此处重新格式化,以便开始大括号和结束大括号缩进到同一级别


您可能会注意到,更明显的是,您的错误是由于缺少大括号造成的。

这种错误通常是前一个函数出错的线索。我还没有尝试编译代码,但是,在Inventory::getInventory中的for循环中,不是缺少了一个右大括号吗?我不想这么说,但如果将大括号对齐,问题会更明显。这就是所谓的奥尔曼风格。哇,我真不敢相信我竟然忽视了这一点。我上下扫描了我的代码很多次,哈哈。谢谢你的建议;这确实完全有道理,为什么一个人应该使用你的格式而不是我使用的格式。再次感谢!
#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;
         }
     }
 }
 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;
 }