Позвольте мне начать с того, что я интенсивно искал ответы в Google, а точнее здесь.
Дело в том, что я действительно (по крайней мере, мне так кажется) нашел людей с похожими проблемами, хотя ответ на них дал мне еще одну проблему.
Я использую Visual Studio 2010 Express и работаю с SFML-библиотекой (хотя я не думаю, что эта последняя часть актуальна)
Итак, вот оно:
У меня есть исходный файл player.cpp, который содержит класс Player, и у меня есть файл заголовка (включенный во все исходные файлы) с именем cc.h (команда и управление), в котором содержатся все необходимые включения и внешние переменные / функции. Необходимый код можно суммировать следующим образом:
Player.cpp:
#include "cc.h"
class Player
{
private:
//some variables here
public:
//more variables and some functions
}john;//example instance
cc.h:
#pragma once
//some #includes
//some externs
extern Player john;
Теперь в cc.h слово Player подчеркнуто как ошибка, говоря, что это неопределенный идентификатор , но только иногда, иногда Visual Studio не помечает это как ошибку, а распознает его как класс, но не распознает Джона как объект / экземпляр (я надеюсь, это так называется) того же класса.
Кроме того, при компиляции первой ошибки, которую он показывает, это «error C2146: syntax error : missing ';' before identifier 'john'
» в строке внешнего объявления john, в cc.h, что, по-видимому (для меня) не имеет никакого смысла.