是否有一种方法可以命名(或以其他方式)包含一个文件,而无需更改要包含的文件?就像这样:
#include "A.cpp" as namespace A
据此,例如:
Start.cpp
// #include "A.cpp" as namespace A
#include "B.cpp"
int main() {
// Could call A::Function()
// or similar??
}
A.cpp
int Function() {
return 1;
}
B.cpp
int Function() {
return 2;
}
编译:
clang++ --std=c++2a Start.cpp -o Start.o; ./Start.o
您可以将包含内容包装到名称空间中。
namespace A {
#include "A.cpp"
}
但是您有风险,该文件中包含的所有内容也是该新名称空间的一部分,并且可能会导致诸如未解决的符号之类的不同问题。
注意:您不应该包含cpp文件。那不好。
C ++中没有这样的功能。最好的办法是:
namespace A {
#include "A.cpp"
}
[#include
只是粘贴文件,这样可能会给您带来一些错误。
良好的C ++库定义了它们自己的名称空间。
希望C++20
中的模块可以简化此过程!