全域/靜態變數的構造順序在同一編譯單元內遵循定義順序,但跨編譯單元則為「未指定行為」;析構順序理論上與構造順序相反,但同樣受鏈接順序影響。切勿在程式邏輯中依賴特定的釋放順序。
std::cout,需手動 std::flush 或改寫入檔案才能可靠觀察。std::unique_ptr 中,在 main() 開頭手動 new、結尾 reset()。C++ 標準 [basic.start.init] / [basic.start.term] 明確規定:動態初始化的非區域變數在跨翻譯單元時順序未定義;析構順序與初始化順序相反,但同樣受限於跨模組不確定性。