2016-11-13 1 views
0

ない友人:C++のアクセス、これは愚かまたはナンセンスな質問ですが、場合、私は事前にごめんなさい

は、1クラスの非定数静的クラス変数は別のクラスで使用することができます友人やベース/派生クラスを使用せずに? (省略)の状況は次のとおりです。

class Decl { 
    public: 
      static string searchVal; 
      ... (other irrelevant stuff) 
}; 

class Conj { 
    public: 
     static string searchVal; 
     ... (other irrelevant stuff) 
}; 
それはだ場合、私は両方のクラスでsearchValを繰り返したくない、と理由プログラムの残りの部分で、私は友人を使用してに熱心でないんだけど(私は意志

onlyオプション)。

+0

あなたはどこにでも '供述:: searchVal'を使用して静的メンバーにアクセスすることができます – pat

答えて

0

メンバーがpublicであるため、クラス定義が両方とも表示されている場合、その静的メンバーにはそれぞれDecl::searchValまたはConj::searchValを使用してアクセスできます。例えば

class Decl 
{ 
    public: static string searchVal; 
}; 

class Conj 
{ 
    public: 
     static string searchVal; 
}; 

// within ANY function, including members of either class above 
// ... as long as both definitions above are visible to the compiler 

if (Conj::searchVal == Decl::searchVal) 
{ 
     // do something 
} 
関連する問題