'::out' 尚未声明

时间:2021-04-25 04:00:04

标签: c++

以下是代码

#include <iostream>

using namespace std;

int main()
{
    int x=5, y=6;
    int out = x + y;

    {
        int out= 89;
        cout << :: out << "\n";
    }

    cout << out;
}

我得到的

error: ‘::out’ has not been declared                                                  
   12 |   cout << :: out << "\n";                                                                                                                 
      |              ^~~          

编辑:我原以为它会打印变量 out,其值为 11(如 python 中的 nonlocal),但我收到了错误。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

没有全局变量out,你必须在main之外声明一个全局变量,或者你可以简单地去掉范围解析运算符::并打印out的值

#include <iostream>
using namespace std;
int main()
{
    int x = 5, y = 6;
    int out = x + y;
    {
        int out = 89;
        cout << out << "\n";
    }
    cout << out;
}

如果要使用全局变量先改名

#include <iostream>
using namespace std;
int Globalout;
int main()
{
    int x = 5, y = 6;
    Globalout = x + y;
    {
        int Localout = 89;
        cout << Localout << "\n";
    }
    cout << ::Globalout;
}
相关问题