[問題] 類別物件宣告為全域變數?

看板C_and_CPP (C/C++)作者 (超越自己)時間10年前 (2015/09/02 20:39), 編輯推噓3(3022)
留言25則, 8人參與, 最新討論串1/1
各位板友大家好, 有人把類別的物件宣告於全域變數嗎? 使用起來會不會有什麼問題呢? 是否該盡量避免這樣的程式撰寫方式。 還請板上先進不吝提供保貴經驗, 謝謝大家。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.200.178 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1441197554.A.A17.html

09/02 20:41, , 1F
1. 有. 2. 有. 3. 是
09/02 20:41, 1F

09/02 20:50, , 2F
如果有很多 global static variables 跨 compilation
09/02 20:50, 2F

09/02 20:51, , 3F
unit,要小心產生 static initialization order fiasco
09/02 20:51, 3F

09/02 20:55, , 4F
可改用 Construct On First Use https://goo.gl/jSC3hh
09/02 20:55, 4F

09/02 21:38, , 5F
謝謝兩位先進:D
09/02 21:38, 5F

09/02 22:06, , 6F
謝謝Huang大喔
09/02 22:06, 6F

09/02 22:22, , 7F
想像每個人都可以直接走進銀行的金庫...XD
09/02 22:22, 7F

09/03 05:04, , 8F
其實可以反過來問:你為什麼要丟global?有除了方便以外
09/03 05:04, 8F

09/03 05:04, , 9F
其他的理由嗎?沒有的話為什麼要這樣做? XD
09/03 05:04, 9F

09/03 08:26, , 10F
因為經驗不足!有時候壓根沒想到需要傳這麼多東西,又最外面
09/03 08:26, 10F

09/03 08:28, , 11F
一層是用純C的寫法。目前自己胡亂歸納的想法是:不管如何,都
09/03 08:28, 11F

09/03 08:28, , 12F
要將實際運作的最外層包成一個class..因不確定正不正確,故
09/03 08:28, 12F

09/03 08:29, , 13F
上來求教板上先進們。
09/03 08:29, 13F

09/03 10:40, , 14F
純 C 與用 global 與否根本是兩回事, 經驗確實不足
09/03 10:40, 14F

09/03 10:59, , 15F
如果包成class的話,比較能夠方便拿取變數,不用傳來傳去XD
09/03 10:59, 15F

09/03 11:11, , 16F
用C的話,非得要用傳參數給函式,要不就是把參數包成結構
09/03 11:11, 16F

09/03 11:12, , 17F
這應該是我錯誤的理解,請問u大能否再多分享一些呢
09/03 11:12, 17F

09/03 11:58, , 18F
我不太熟C的慣例,不過已C++來講,用Singleton或者
09/03 11:58, 18F

09/03 11:59, , 19F
MicroService,以及傳遞Context都是常見的解法
09/03 11:59, 19F

09/03 14:37, , 20F
謝謝殺手貓大大分享,經查覺得很棒^^ 謝謝您
09/03 14:37, 20F

09/03 18:46, , 21F
cout cin 就是 global object
09/03 18:46, 21F

09/05 01:26, , 22F
包成class與否,及是否需要「傳來傳去」,是兩回事
09/05 01:26, 22F

09/05 01:27, , 23F
singleton其實就是global variable
09/05 01:27, 23F

09/10 10:51, , 24F
謝謝l大分享^^
09/10 10:51, 24F

09/10 10:51, , 25F
學習學習!
09/10 10:51, 25F
文章代碼(AID): #1LvktoeN (C_and_CPP)
文章代碼(AID): #1LvktoeN (C_and_CPP)