我在编写一个作为 C++ 程序的一部分的类时遇到问题 - 其中我有三个类,FirstClass、SecondClass 和 ThirdClass - First 和 Second 类都包括 ThirdClass.h,但是在 SecondClass 中我可以正常声明它们,在 FirstClass 中,第一个声明工作正常,但任何进一步的声明都会给我一个错误,“ThirdClass 不是类型名称”
这是错误类中的一个片段
#include "ThirdClass.h"
class FirstClass
{
public:
FirstClass(void);
// This decleration of ThirdClass works fine
FirstClass(ThirdClass ());
FirstClass(const FirstClass& rhs);
~FirstClass(void);
private:
//These are the two that're erroring
ThirdClass nestedClass();
void Init (ThirdClass ());
void Copy (FirstClass);
};
我假设这与它们都链接到同一个头文件有关,但我一直在寻找广泛的方法,试图在网上找到解决方案,但无济于事。我确实设法通过将包含放在命名空间中来使其工作,但我也读到这是非常糟糕的做法,所以我真的不想那样做。