2016-11-13 117 views
0

对不起提前如果这是一个愚蠢的或无义的问题,而是:C++访问类的静态成员变量,没有朋友

可用于一类非恒定的静态类变量被另一个类使用没有使用朋友或基地/派生类?在(略)情况是:

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

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

我不想重复searchVal两个班,因为程序的其余部分,我并不热衷于使用的朋友(但我会当它是唯一的选择)。

+0

您可以访问任何地方使用'::申报的searchVal'静态成员 – pat

回答

0

由于您static成员public,如果你的类定义都是可见的,那么它们的静态成员可以分别以Decl::searchValConj::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 
}