: класс не был объявлен, несмотря на включение заголовка, и код компилируется в другом месте

Итак, у меня есть класс, включенный в другой класс, который продолжает выдавать ошибку компиляции вида "ошибка: 'ProblemClass' не был объявлен. Файлы настроены следующим образом:

#ifndef PROBLEMCLASS_H
#define PROBLEMCLASS_H

#include <iostream>
#include <cmath>

class ProblemClass
{
  public:

    virtual void Init() = 0;
};

#endif

и класс где возникает ошибка, выглядит так:

#ifndef ACLASS_H
#define ACLASS_H

#include "problemclass.h"

class AClass : public Base
{
  public:

    void DoSomething(ProblemClass* problem);

};

#endif

Ошибка компиляции возникает при void Dosomething ();

Я знаю, что приведенного здесь кода недостаточно для решения проблемы. Мне не удалось создать минимальный пример, который мог бы воспроизвести это. Так что мой вопрос гораздо более общий; какие вещи могут вызвать это? Есть ли что-то конкретное, что я должен искать, или какая-то линия расследования, которой я должен следовать, чтобы отследить это?

Этот код отлично компилируется в почти идентичной версии проекта.

Любая помощь была бы очень полезна. оценили, как бы расплывчато. Я использую кодовые блоки 10.05 с mingw4.4.1 в 64-разрядной версии win 7.

39
задан 0x6900 4 November 2014 в 07:07
поделиться