如何修复“之前的预期主表达式”'令牌'错误?(How do I fix a “Expected Primary-expression before ')' token” error?)
这是我的代码。 我一直收到这个错误:
错误:')'令牌之前的预期primary-expression
任何人有任何想法如何解决这个问题?
void showInventory(player& obj) { // By Johnny :D for(int i = 0; i < 20; i++) { std::cout << "\nINVENTORY:\n" + obj.getItem(i); i++; std::cout << "\t\t\t" + obj.getItem(i) + "\n"; i++; } } std::string toDo() //BY KEATON { std::string commands[5] = // This is the valid list of commands. {"help", "inv"}; std::string ans; std::cout << "\nWhat do you wish to do?\n>> "; std::cin >> ans; if(ans == commands[0]) { helpMenu(); return NULL; } else if(ans == commands[1]) { showInventory(player); // I get the error here. return NULL; } }Here is my code. I keep getting this error:
error: expected primary-expression before ')' token
Anyone have any ideas how to fix this?
void showInventory(player& obj) { // By Johnny :D for(int i = 0; i < 20; i++) { std::cout << "\nINVENTORY:\n" + obj.getItem(i); i++; std::cout << "\t\t\t" + obj.getItem(i) + "\n"; i++; } } std::string toDo() //BY KEATON { std::string commands[5] = // This is the valid list of commands. {"help", "inv"}; std::string ans; std::cout << "\nWhat do you wish to do?\n>> "; std::cin >> ans; if(ans == commands[0]) { helpMenu(); return NULL; } else if(ans == commands[1]) { showInventory(player); // I get the error here. return NULL; } }最满意答案
showInventory(player); 将类型作为参数传递。 这是非法的,你需要传递一个对象。
例如,类似于:
player p; showInventory(p);我猜你有这样的事情:
int main() { player player; toDo(); }这太可怕了。 首先,不要将对象命名为与您的类型相同。 其次,为了使对象在函数内部可见,您需要将其作为参数传递:
int main() { player p; toDo(p); }和
std::string toDo(player& p) { //.... showInventory(p); //.... }showInventory(player); is passing a type as parameter. That's illegal, you need to pass an object.
For example, something like:
player p; showInventory(p);I'm guessing you have something like this:
int main() { player player; toDo(); }which is awful. First, don't name the object the same as your type. Second, in order for the object to be visible inside the function, you'll need to pass it as parameter:
int main() { player p; toDo(p); }and
std::string toDo(player& p) { //.... showInventory(p); //.... }更多推荐
发布评论