2011-08-16 303 views
1

C++有可能在不創建對象的情況下訪問其他類中的類變量。我試圖使用靜態,但其他類不識別我的變量。 我有3班。其中兩個應使用sae變量。在第三課中,我正在改變價值觀。將不勝感激,如果你能幫助。也許你有一個例子。如何在C++中訪問類變量

+0

添加一些示例代碼 – James

+0

您需要更具體。也許發佈一些示例代碼。 – Dan

回答

2
class Myclass 
{ 

    public: 
     static int i; 
}; 

int Myclass::i = 10; 


class YourClass 
{ 

    public: 
     void doSomething() 
     { 
      Myclass::i = 10; //This is how you access static member variables 
     } 

}; 

int main() 
{ 
    YourClass obj; 
    obj.doSomething(); 
    return 0; 
} 
2

static是正確的關鍵字:

class A { 
public: 
    static int i; // <-- this is a class variable 
}; 

class B { 
public: 
    void f() { A::i = 3; } // <-- this is how you access class variables 
}; 

他們只有我能想到的潛在問題是,

  1. 您所做的類變量protectedprivate,從而將其從其他代碼無法訪問。
  2. 您忘記指定類變量的全部範圍(在本例中爲A::)。
+0

謝謝。我也會接受你的回答,但我必須做出決定。 – buddy

0

我覺得Singleton Pattern會有所幫助,但我的它沒有什麼大的風扇。更好的設計將是讓一個類獲取對象的所有權,並將此對象的引用傳遞給其他類。