一个类的静态函数可以访问全局静态变量吗?

时间:2017-09-27 19:14:32

标签: c++ variables static global

/*In header file */
class abc{
public:
static bool do_something();

}

/*In other file */
static bool isvalid=false; //global variable

bool abc::do_something()
{
return isValid;
}

它编译正常。我想知道它是否正确使用?

1 个答案:

答案 0 :(得分:0)

是的,它是正确的 - 没有符号表示无效,其他文件将无法看到它。他们可以通过调用abc::do_something()

来读取它的当前值

成员函数不需要是静态的。所有实例都可以返回相同的当前值isValid

在C ++中隐藏数据的常规方法是在类中使其成为私有和静态的...

头文件

class abc{
    static bool isValid;  // can be seen, does not use space in an instance
public:
    static bool do_something();

}


/*In other file */
bool abc::isvalid=false; //global variable

bool abc::do_something()
{
    return isValid;
}