1. ホーム
  2. c++

[解決済み】「Expected Primary-expression before ')' token」エラーを修正するにはどうしたらいいですか?

2022-02-13 14:28:41

質問

以下は私のコードです。私はこのエラーが発生し続けます。

error: ')'トークンの前に一次式があることが予想されます。

どなたか、これを修正する方法をご存知ですか?

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);
    //....
}