当前位置:  开发笔记 > 编程语言 > 正文

具有相同名称的C++变量,context:global和private,

如何解决《具有相同名称的C++变量,context:global和private,》经验,为你挑选了2个好方法。

在下面的代码中,g ++给出了这个错误:1.cpp:在成员函数中,void W::test()': 1.cpp:6: error:int F :: glob'是private 1.cpp:19:error:在这个上下文中

但是,不应该在这里使用全局声明的变量'glob',而不是"私有""glob"吗?

   #include 

    int glob;
    class F
    {
        int glob;
        public:
        void readIt()
        {
            cin >> glob;
        }
    };

    class W : public F
    {
        public:
            void test()
            {
                glob--;
            }
    };

    int main()
    {
    }

strager.. 10

使用范围规则访问变量和函数,而不是可见性规则.因为F::globglob在范围内W::test(),所以使用它.但是,W::test()没有访问权限F::glob,并且会出现错误结果.编译器并没有检查::glob,因为别的preceeds它范围内"优先级"(不知道的确切期限).



1> strager..:

使用范围规则访问变量和函数,而不是可见性规则.因为F::globglob在范围内W::test(),所以使用它.但是,W::test()没有访问权限F::glob,并且会出现错误结果.编译器并没有检查::glob,因为别的preceeds它范围内"优先级"(不知道的确切期限).



2> yesraaj..:

private glob会影响全局glob,所以错误是正确的使用:: glob来访问全局变量,如果你打算使用全局变量

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有