【发布时间】:2011-09-27 02:58:37
【问题描述】:
所以我有一个包含在另一个类中的类,它不断抛出形式为“错误:'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();
我知道这里的代码不足以解决问题。我一直无法创建一个可以重现它的最小示例。所以我的问题要笼统得多;什么样的事情可能会导致这种情况?有什么特别值得我寻找的,或者我应该遵循一些调查路线来追踪它吗?
此代码在项目的几乎相同版本中编译良好。
任何形式的帮助都将不胜感激,无论多么含糊。我在 win 7 64 位中使用代码块 10.05 和 mingw4.4.1。
【问题讨论】:
-
检查您的拼写,10 个这些错误中有 9 个是因为您拼写错误的标识符之一。
-
我已经用一把细齿梳解决了这个问题,并且有一个朋友也看过它,所以我认为拼写不太可能是问题。以及它在一个稍微不同的项目版本中编译良好的事实,其中两个类都存在并且具有相同的关系。
-
对我来说看起来不错。你是否为 DoSomething 实现了一个主体?
-
能否给出完整的代码,尤其是坏掉的和“几乎一模一样的版本”的区别?
-
dsomething 的主体已经实现,是的。完整的功能代码将相当大。除了代码标签之外,我还有什么特别的方式可以发布吗?
标签: c++ compiler-errors header