編譯器(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。 不過這樣感覺怪怪的,不知道有沒有其他正常的方法?