我不确定我的编译器在这里想要什么。它给我以下错误

error C2065: 'newGame' : undeclared identifier


相关代码:

void createMenu() {
    MenuItem newGameOption = MenuItem("../art/newGame.bmp", newGame);
}
//start a new game
void newGame() {

}


在MenuItem.h中

class MenuItem {
    bool selected = false;
    std::string path; //Path to menu item's art

    void *pf(); //Function to execute upon selection

public :
    MenuItem(const char*, void pf()); //constructor
};

最佳答案

编译器错误似乎很简单。无论“ newGame”是什么,编译器对此一无所知。这是它第一次看到该名称的任何东西。

您显然在文件的后面定义了newGame()函数,这一事实显然无济于事。在编译器尝试编译第一个函数时,它尚未读取它。

以下是一些适合您的Google食物:“转发声明”。放:

void newGame();


在createMenu()之前,以便编译器知道它是什么。

关于c++ - 未声明的标识符(newGame)-用作参数的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27673413/

10-13 08:13