2016-06-13 101 views
-3

我有我的一些程序的全局變量,我試圖迴避他們,但我不知道如何..避免全局變量

這裏是我的程序: Here

有什麼替代避免這些變量?

而且任何其他此言appriciated太

+1

封裝和實例化=>封裝一類的內部的全局變量,作爲實例成員,把使用它作爲這個類的實例的成員函數和在裏面創建一個實例你的主要功能。 – Garf365

+0

避免全局變量!那麼,爲什麼要定義它們? –

+0

@MohammadrezaPanahi我的意思是我將自己的變量聲明爲全局變量,而不是變量本身 –

回答

0

我認爲你有多種可能性。

  1. 創建一個類,並把你的函數和全局變量中(首選方式)
  2. 如果你只關心名稱衝突,你可以使用unnamed namespaces
  3. 它的全局變量只在一個函數中使用,聲明它作爲函數內的靜態變量(其值將被保持的呼叫之間)
+1

這唯一可取的方法是解決方案1.避免使用其他解決方案只是掩碼或解決有關全局變量的一些問題 – Garf365

+0

是的第一個是好的解決方案。謝謝 –

-1

怎麼樣來使用i_mouse和depthimagemouse一個靜態函數onMouse(你在短短的1個功能使用)和恆變量#define中? 我認爲這可能是一個很好的解決方案。

+1

'靜態'意味着與全局變量相同的問題:函數仍然不可重入。你只能回答關於可見性問題,而不是關於存儲時間和函數的再入口。所以,如果你想避免全局變量,不要使用靜態 – Garf365