Хорошо, я знаю, что некоторые вопросы, подобные этому, вероятно, были помещены здесь раньше, но я ничего не мог найти об этом в любом месте в Интернете, поэтому я могу только предположить, что это не так. что хорошо с C++, и я сделал что-то неправильно, не понимая.Переменная в заголовочном файле, не объявленная в области
В моей игре я делаю, у меня есть мой основной .cpp-файл, который включает в себя заголовочный файл (давайте назовем его A), который включает в себя все другие файлы заголовков (назовем их B). В одном из этих заголовочных файлов B я включил файл A для доступа к булевому , который определен в нем. Ни один из файлов заголовков B, несмотря на включение файла A, который определяет переменную, кажется, может использовать его. Я действительно смущен этим и очень ценю некоторую помощь. Ниже приведен код, который я использовал:
pong_header.h (файл Заголовок, как описано выше)
#ifndef PONG_HEADER_H
#define PONG_HEADER_H
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"
#include <stdio.h>
#include "pong_graphics.h"
#include "pong_core.h"
#include "pong_entity.h"
#include "pong_event.h"
bool programRunning;
#endif
pong_event.h (один из заголовочных файлов B)
#ifndef PONG_EVENT_H
#define PONG_EVENT_H
#include "pong_header.h"
void Pong_handleEvents(SDL_Event event)
{
while(SDL_PollEvent(&event))
{
switch(event.type)
{
case SDL_QUIT:
programRunning = true;
break;
case SDL_KEYDOWN:
switch(event.key.keysym.sym):
case SDLK_ESCAPE:
programRunning = false;
break;
break;
default:
break;
}
Pong_handleEntityEvents(event)
}
}
другой доступ к файлам B programRunning
таким же образом.
Точный код ошибки :: Blocks дает мне следующим образом Pong\pong_event.h|20|error: 'programRunning' was not declared in this scope
Что вы выложили должны работать. Я подозреваю, что вы описываете и что на самом деле происходит, немного отличается? –
Сделать это extern bool programRunning; и это тоже в источнике. (bool работает). Не забудьте украсить его импортом/экспортом, если это dlll –