编译器(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。
不过这样感觉怪怪的,不知道有没有其他正常的方法?