開發平台(Platform): (Ex: Win10, Linux, ...)
win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VC++
問題(Question):
1. 我有些參數,想要讓全部的function都能看的到
但是希望控制其life time
這個問題跟我上一篇很類似
我想要讓某個global object裡面的object執行某個function
但是因為變數眾多,而且我需要執行的次數只需要一次
所以我想說塞到destructor
但是發現因為是global variable,destructor會最後才跑,
我希望我能控制其被執行時間,也就是控制其lifetime
換句話說,我比較想要是local variable(可以控制何時死掉),
但是卻想讓所以function都看的到
目前想到是
(1) global設一個指標,在function內宣告變數,
並將此指標指向這個local variable
(2) 當成input參數,一層一層往下丟,但是因為包了好幾層,這修改起來頗麻煩
優點是可以定義那些function內部不可修改 (前面加const)
2. 想問,一般這種大家都要看的到的系統資料大家是怎麼處裡的?
我目前的作法感覺是做半套
包成class,宣告成global variable,
利用member function來保護內部資料不可以被隨意動到
但是變數一旦很多,每個都要弄成member function來讀取,十分麻煩
目前是因為一起開發的人數不多,大家很自律不會亂搞,所以很多都沒有另外包
大致上都是大家merge code時候順便檢查
但如果更多人開發,或是不夠自律的話,勢必還是需要一些保護措施
想問,實務上都是怎麼處理?