具有相同名称的 C++ 变量,上下文 : global and private,

标签 c++ private global

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

但是,不应该全局声明 此处使用变量“glob”代替 “私有(private)”“全局”的?

   #include <iostream.h>

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

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

    int main()
    {
    }

最佳答案

使用范围规则而不是可见性规则访问变量和函数。因为 F::globW::test() 范围内的 glob,所以使用它。但是,W::test() 没有访问 F::glob 的权限,因此会出现错误。编译器检查::glob,因为在“优先级”范围内有其他东西在它之前(不确定确切的术语)。

关于具有相同名称的 C++ 变量,上下文 : global and private,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/399942/

相关文章:

c# - 将 Directx12 资源移植到 XAML 元素:关于 WRL::ComPtr 替换的建议?

C++ 为什么要使用公共(public)、私有(private)或保护继承?

c++ - 如何显示大于某个值的数字?

c++ - DLL 中使用的全局变量

node.js - 我可以在 Typegoose 中使用私有(private)属性吗?

ASP.NET - 执行某些代码的全局位置?

python - 如何在命令函数调用中避免全局变量

c# - 全局钩子(Hook)(非事件程序)

c++ - 是否可以确定 c++ 枚举类的元素数量?

Objective-C:访问继承类中的私有(private)属性