Необъявленный идентификатор (newGame) - указатель на функцию в качестве аргумента

0

Я не уверен, что мой компилятор хочет здесь. Это дает мне следующую ошибку

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 art

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

public :
    MenuItem(const char*, void pf()); //constructor
};
  • 2
    newGame() выше createMenu() .
Теги:
function-pointers

1 ответ

1
Лучший ответ

Ошибка компилятора представляется довольно простой. Независимо от того, что такое "newGame", компилятор ничего не знает об этом. Это первый раз, когда он видел что-то из этого имени.

Тот факт, что у вас есть функция newGame(), определенная позже в файле, по-видимому, не помогает. В то время, когда компилятор пытается скомпилировать первую функцию, он не прочитал ее.

Вот некоторые продукты Google для вас: "передовые декларации". Положил:

void newGame();

Перед createMenu(), чтобы компилятор знал, что это такое.

  • 0
    По какой-то причине это дает мне целый ряд новых ошибок. Добавлю их в исходный вопрос
  • 0
    Исправлено игнорировать ... Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню