我有一個C++類的靜態變量的定義:更改靜態變量的作用域
static SomeType MyClass::StaticVariable;
在另一類我想使用這個變量沒有MyClass的前綴。我可以這樣做嗎?怎麼樣?
我有一個C++類的靜態變量的定義:更改靜態變量的作用域
static SomeType MyClass::StaticVariable;
在另一類我想使用這個變量沒有MyClass的前綴。我可以這樣做嗎?怎麼樣?
你可以使用一個參考:
class MyOtherClass {
static SomeType &StaticVariable = MyClass::StaticVariable;
// ...
}
你必須確保你不嘗試引用MyOtherClass::StaticVariable
MyClass::StaticVariable
之前已建成(在程序啓動時)。
那麼如何不使用'MyClass ::'? – 2012-09-15 03:42:03
因爲您可以在每次使用MyOtherClass時使用'StaticVariable'而不使用MyClass ::'限定符。如果這不能解決問題,那麼也許我不明白這個問題。 –
但是你剛剛使用過它 - 這是作弊。 – 2012-09-15 03:44:56
只有當來自MyClass
和StaticVariable
的「其他類」具有公開或受保護的可見性時,纔可以這樣做。或者,您可以將該成員變量移動到某個其他作用域,或者聲明一個引用/指針並將其指向該變量,以便稍後必須減少鍵入操作。
您可以從聲明變量的類派生。 – dasblinkenlight
爲什麼要更改範圍 - 如果您不希望範圍使其成爲全局的 –