如何在c ++中访问父作用域的变量?

yan*_*pas 5 c++ scope

我们假设我有一段这样的代码:

#include <iostream>

int main()
{

    int a = 5;
    {
        int a = 12;
        std::cout << a;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我想a==5从外部范围进行cout ,但是main::a肯定无法正常工作.有没有解决方法?

Ily*_*lya 5

一个(假设)解决方法:

int main()
{

    int a = 5;
    int *pa = &a;
    {
        int a = 12;
        std::cout << (*pa);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

或者,

int main()
{

    int a = 5;
    int& ra = a;
    {
        int a = 12;
        std::cout << ra;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

  • 或者更简单的 `int&amp; aref = a;` 并在里面使用 `aref`。但是如果要同时使用这两个变量,那么我应该只更改变量的名称。 (6认同)