是否可以在 C++ 中以间接方式包含头文件
Is that possible to include a header file in an indirect way in C++
首先,我是一个编程初学者。所以在回答之前,请考虑...
假设我有 3 个不同的源代码文件。第一个是foo.cpp,第二个是doo.cpp,第三个是loo.cpp。在 doo.cpp 中,我包含了 foo.h:
的头文件
#include "foo.h"
Doo::Doo(){
// something
}
在另一个文件 loo.cpp 中,我包含了 doo.h 的头文件:
#include "doo.h"
Loo::Loo(){
// something
}
我的问题是;在 loo.cpp 中使用,我是否有权从 Foo class 中创建一个对象,该对象在 foo.h,没有包含在 loo.cpp 中,但包含了 doo.h,其中包含了 foo.h。我可以做这样的事情吗? :
#include "doo.h"
Loo::Loo(){
Foo object = new Foo();
}
所以像上面一样,我可以到达 foo.h 而不将其包含在 loo.cpp 中但有另一个源文件已包含在其自己的源文件中 foo.h ?它就像一个间接的,如果可能的话。
注意:我不知道我是否把我的问题解释得如此糟糕,所以请反馈给我,以便我可以编辑我的问题以使其更容易理解。
没有间接的东西,包括你描述它的方式。如果您将 foo.h
包含到 doo.cpp
中,则 foo.h
将仅在 doo.cpp
中可用,而不会在包含 foo.h
的文件中可用。您还需要将 foo.h
包含到 doo.h
中,以使 foo.h
的内容可供 doo.h
.
的用户使用
#include
只是简单的文字处理,仅此而已。
to use in loo.cpp
, will I have access to create an object from the Foo class which is declared in foo.h
[...] having included doo.h
which has the inclusion of foo.h
.
是的。
如果
loo.cpp
包括 doo.h
和
doo.h
包括 foo.h
那么 foo.h
也包含在 loo.cpp
中。
你需要原型。如果它们包含在任何翻译单元 (.cpp) 中,您可以通过 运行 其上的预处理器进行检查:cpp foo.cpp
并检查其输出,这实际上是提供给编译器的代码。
首先,我是一个编程初学者。所以在回答之前,请考虑...
假设我有 3 个不同的源代码文件。第一个是foo.cpp,第二个是doo.cpp,第三个是loo.cpp。在 doo.cpp 中,我包含了 foo.h:
的头文件#include "foo.h"
Doo::Doo(){
// something
}
在另一个文件 loo.cpp 中,我包含了 doo.h 的头文件:
#include "doo.h"
Loo::Loo(){
// something
}
我的问题是;在 loo.cpp 中使用,我是否有权从 Foo class 中创建一个对象,该对象在 foo.h,没有包含在 loo.cpp 中,但包含了 doo.h,其中包含了 foo.h。我可以做这样的事情吗? :
#include "doo.h"
Loo::Loo(){
Foo object = new Foo();
}
所以像上面一样,我可以到达 foo.h 而不将其包含在 loo.cpp 中但有另一个源文件已包含在其自己的源文件中 foo.h ?它就像一个间接的,如果可能的话。
注意:我不知道我是否把我的问题解释得如此糟糕,所以请反馈给我,以便我可以编辑我的问题以使其更容易理解。
没有间接的东西,包括你描述它的方式。如果您将 foo.h
包含到 doo.cpp
中,则 foo.h
将仅在 doo.cpp
中可用,而不会在包含 foo.h
的文件中可用。您还需要将 foo.h
包含到 doo.h
中,以使 foo.h
的内容可供 doo.h
.
#include
只是简单的文字处理,仅此而已。
to use in
loo.cpp
, will I have access to create an object from the Foo class which is declared infoo.h
[...] having includeddoo.h
which has the inclusion offoo.h
.
是的。
如果
loo.cpp
包括doo.h
和doo.h
包括foo.h
那么 foo.h
也包含在 loo.cpp
中。
你需要原型。如果它们包含在任何翻译单元 (.cpp) 中,您可以通过 运行 其上的预处理器进行检查:cpp foo.cpp
并检查其输出,这实际上是提供给编译器的代码。