我阅读有关的模块,我希望做这样的事情:是导出命名空间不导出后的一切吗?
a.cpp
module foo.a;
export namespace foo {
struct A {
void doA();
};
}
import foo.b;
void foo::A::doA() {
B{}.doB();
}
b.cpp
module foo.b;
export namespace foo {
struct B {
void doB();
void start();
};
}
import foo.a;
import std.io;
void foo::B::doB() {
std::cout << "Stuff done!" << std::endl;
}
void foo::B::start() {
A{}.doA();
}
的main.cpp
import foo.b;
int main() {
foo::B{}.start();
}
由于模块接口不能互相使用,为了工作,导出后的所有内容编辑名称空间不能是接口的一部分。根据当前的TS,以上是否正确?对于实现中的循环依赖性,是否需要将它分解为另一个文件?
您错误地将您的代码标记为c/C++。请将其标记为Typescript。 – StarShine
@StarShine - 你在做什么? – StoryTeller
模块,据我所知,导入和语法如A {}。doA()是无效的C++。 – StarShine