2011-08-16 4 views
1

C++では、オブジェクトを作成せずに他のクラスのクラス変数にアクセスすることは可能ですか?私は静的を使用しようとしましたが、他のクラスは変数を認識しません。 私は3つのクラスを持っています。これらのうちの2つでは、変数saeを使用する必要があります。 3番目のクラスでは、値を変更しています。もしあなたが助けることができれば、感謝します。たぶんyouveに例があります。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. あなたは、このように他のコードからアクセスできないことをレンダリングする、クラス変数protectedまたはprivateをしたということです。
  2. クラス変数(この例ではA::)のフルスコープを指定するのを忘れています。
+0

ありがとうございます。私もあなたの答えを受け入れるだろうが、私は決定しなければならなかった。 – buddy

0

私はSingleton Patternが役立つだろうと思うが、私はそれのない大ファンですありません。 1つのクラスでオブジェクトの所有権を取得し、このオブジェクトへの参照を他のクラスに渡すことが、より優れた設計になります。

関連する問題