C ++访问静态类成员变量,而不是朋友

时间:2016-11-13 01:40:03

标签: c++ class static

如果这是一个愚蠢或无意义的问题,我提前抱歉,但是:

一个类的非常量静态类变量是否可以被另一个类使用而不使用friend或base / derived类? (缩写)情况是:

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

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

我不想在这两个课程中重复searchVal,而且由于课程的其余部分,我并不热衷于使用朋友(但如果它是唯一的选择,我会的)

1 个答案:

答案 0 :(得分: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
 }