编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出) g++ 问题(Question): 我有两个 class A、class B,想要在 B 的建构子里丢东西给 A。 在宣告成全域变量的时候,有可能会因为 B 先建构好,再 A,导致 A 存的东西被清掉。 举例来说: B o1(123); A master; B o2(456); 这样的话,进到 main 里面后看到的 master 里面只有 456。 程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档) https://www.ideone.com/nSYZD8 补充说明(Supplement): 我目前的解决办法是用这个方式: class A &master() { static A _master; return _master; } 用 master() 代替 master。 不过这样感觉怪怪的,不知道有没有其他正常的方法?