dha*_*0us 3 c++ global private
在下面的代码中,g ++给出了这个错误:1.cpp:在成员函数中,void W::test()':
1.cpp:6: error:
int F :: glob'是private 1.cpp:19:error:在这个上下文中
但是,不应该在这里使用全局声明的变量'glob',而不是"私有""glob"吗?
#include <iostream.h>
int glob;
class F
{
int glob;
public:
void readIt()
{
cin >> glob;
}
};
class W : public F
{
public:
void test()
{
glob--;
}
};
int main()
{
}
Run Code Online (Sandbox Code Playgroud)
str*_*ger 10
使用范围规则访问变量和函数,而不是可见性规则.因为F::glob
是glob
在范围内W::test()
,所以使用它.但是,W::test()
没有访问权限F::glob
,并且会出现错误结果.编译器并没有检查::glob
,因为别的preceeds它范围内"优先级"(不知道的确切期限).