因此,我目前正在研究基于文本的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;
}
}
}
我已经完成了研究,但是我根本无法弄清我到底在做错什么。任何帮助深表感谢!旁注:如果人们不花时间评论我可能会更改的编码方面的其他事情,而是坚持这个特定问题,将不胜感激。谢谢!
答案 0 :(得分:2)
这个问题可能会以错字形式结束,但我想举例说明@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;
}
您的代码已在此处重新设置格式,以便将右括号和右括号缩进同一级别。
您可能会注意到,由于缺少括号,您越来越容易出错。