C++ 3.h和3.cpp文件
我正在构建一个应用程序,它应该使用1.h和2.h中的一个类,其定义如下:C++ 3.h和3.cpp文件,c++,class,pointers,C++,Class,Pointers,我正在构建一个应用程序,它应该使用1.h和2.h中的一个类,其定义如下: <classname> *p; *p; 现在我可以在2.cpp中使用p。但我也想在3.cpp中使用它。我无法将2.h包含在3.cpp中。有没有办法让它在3.cpp中可见 感谢您的帮助。请举一个更具描述性的示例,说明您在某些代码中遇到的问题 通常,尝试执行以下操作: 每个标头应仅包含其自身具有相同名称的类 如果一个类正在使用另一个类,并且您可以在该标头中向前声明它,请执行以下操作 您不能向前声明该类是否具
<classname> *p;
*p;
现在我可以在2.cpp中使用p。但我也想在3.cpp中使用它。我无法将2.h包含在3.cpp中。有没有办法让它在3.cpp中可见
感谢您的帮助。请举一个更具描述性的示例,说明您在某些代码中遇到的问题 通常,尝试执行以下操作:
- 每个标头应仅包含其自身具有相同名称的类
- 如果一个类正在使用另一个类,并且您可以在该标头中向前声明它,请执行以下操作
- 编译单元(cpp)文件应包含它们所需的所有标题。理想情况下,首先包括它自己的标题
- 您需要提供更多信息,但我想我已经知道了
您试图在定义的标题中使用类,即另一个标题,但由于某些原因,您无法将定义的标题包含到您处理的标题中。解决方案是创建一个“临时”定义,而不是包含
例如:
您需要在1.h中使用myClassA,但它是在2.h中定义的,一些错误不允许您在1.h中包含2.h来解决它
写:
类别myClassA
在1.h之上,您可以引用它,但没有实现(因为它是在2.cpp中实现的)一个简单的规则是一个类,一个头文件 鉴于:
A.h:
class A
{
};
B.h:
#include "A.h"
class B
{
A obj;
};
C.h:
#include "A.h"
class C
{
A obj;
};
我希望这能回答这个问题。否则,请编辑您的问题,并提供更多详细信息和您试图实现的目标的示例。请解释为什么“无法将2.h包含在3.cpp中”。因为这应该是你问题的答案。你可以在任何
.cpp
中包含任何.h
。否则,您就大错特错了.h文件定义了相应的.cpp文件的接口吗?当你定义这样一个接口时,你应该能够解决这个问题。更多的概括。如果必要的话,删掉符号,放入带有Foos和bar的示例代码,或者像用元信息替换实际信息的游戏中的B和CI,所以我们不用说一个特定的类,而不用说2个头,我们用2个头,现在下一个级别是:假设我们有一个源代码f(x)在某些语言Y中,x是字节索引,我们希望对2个数据源执行操作Z,并且假设出现错误E,我们如何解决这个问题?