2013-09-24 24 views
2

我們可以定義一個函數爲這樣的C或C++,其中某些功能不能訪問它?在C/C++程序中,你能定義一個不能被某個函數訪問的全局變量嗎?

+3

那麼,爲什麼稱它爲「全球?」。 –

+3

你想要做的正是不知道是什麼,我想你可以創建具有相同名稱的功能中的局部變量。然後局部變量將被訪問而不是全局變量。 –

+0

[Shadowing](http://en.wikipedia.org/wiki/Variable_shadowing)可能會有所幫助。 –

回答

2

C/C++爲您提供了兩種類型的全局變量,雖然很多人可能會說,靜態變量不是全局變量...

現在,你可以做到這一點,如果你定義了全局變量後說功能。這可能是不實用的,特別是如果變量在頭文件中定義的,因爲在這種情況下,你必須將#include這可能不會甚至是不可能成爲可能之前定義的功能。

現在,靜態變量所特有的.C或他們的定義,往往不被視爲全局變量.C++文件,但它們是因爲它們是在你的程序是獨一無二的。靜態變量可以在單獨的文件中定義,使其他文件中的其他函數無法訪問。 (記住,C++中的靜態變量是一個命名空間中定義的沒有名字的變量。)

在C++中,你也可以定義一個變量成員,這是靜態的。這意味着該變量是全局變量,但您可以將其變爲一個私有變量。爲了進一步保護它,您可以在子類中將其定義爲私有成員。但是,無論哪種方式,你可能需要獲得某種形式的訪問的該變量(否則無效),因此添加返回一個指針,引用或變量的當前值的函數...

相關問題