2011-09-29 56 views
0

我有一個攝像頭類,它設置了兩個變量 - 投影和視圖矩陣。我可以將這些外部參數包含在任何想訪問變量的頭文件中,或者我可以爲它們設置一個getter /將這些變量的引用傳遞給任何需要它們的東西。這僅僅是一種優先選擇的情況,還是以特定的方式進行實際的收益?使用extern和使用getter的區別?

+1

通過extern,你的意思是公開的,你真的寫過一個類來管理兩個全局變量嗎? –

回答

2

getter的優點是不會讓外部代碼寫入變量(例如指針數組無法遞增)。

否則,它在功能上是相同的,特別是如果它是供您自己使用的話。

+0

哦,好的,謝謝。我認爲即使某些東西是外部的,你仍然需要實際#包含它使用它的文件嗎? – SirYakalot

+1

是的,其他文件需要知道變量存在。您需要在頭文件中將變量聲明爲'extern',並將其作爲普通變量(不包括extern)來實現此變量。 – wormsparty

1

這是更多的封裝問題。如果您的相機類是這兩個矩陣的唯一持有者,那麼通過獲取者而不是公共屬性來提供它們是明智的。

例如,這將允許您對攝像機進行子類化併爲您的視圖和投影矩陣創建其他方法。