3 .h和3 .cpp文件

时间:2011-03-04 12:21:24

标签: c++ class pointers

我正在构建一个应该使用1.h中的一个类的应用程序2.h它的定义如下:

<classname> *p;

现在我可以在2.cpp中使用p。但我也想在3.cpp中使用它。我无法在3.cpp中包含2.h。有没有办法让它在3.cpp中可见?

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

使用某些代码解决问题的更具描述性的示例很有价值。

一般尝试执行以下操作:

  • 每个标题只应包含自己的同名类。
  • 如果一个类正在使用另一个类,并且您可以在该标题中向前声明它,请执行。

您无法正确声明该类是否具有另一个类的实例,或者它是否派生自该类。

  • 编译单元(cpp)文件应包含所需的所有标头。理想情况下首先包含自己的标题。

答案 1 :(得分:0)

您需要提供更多信息,但我想我明白了 您尝试在已定义的标头中使用类。另一个标头,但由于某种原因,您无法将其定义的标头包含在您正在处理的标头中。解决方案是创建一个“临时”定义而不是包含。

例如: 你需要1.h中的myClassA,但它是在2.h中定义的,有些错误不允许你将2.h包含在1.h中来解决它。 写:

类myClassA;

在1.h之上,所以你可以引用它,但没有实现(因为它是在2.cpp中实现的)

答案 2 :(得分:0)

一个简单的规则是一个类,一个头文件。

假设:

A.h:
class A
{
};

B.h:
#include "A.h"
class B
{
  A obj;
};

C.h:
#include "A.h"
class C
{
  A obj;
};

我希望这能回答这个问题。否则,请使用更多详细信息和您要完成的示例编辑您的问题。