C++变量范围问题

Wil*_*son 1 c++ scope

我无法理解为什么会这样:

#include <iostream>
using namespace std;

int main(){
     signed long int count = 1;

     //...

     count++;

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

然而,如果我将标识符声明(限制)移动到脚本的开头(就在使用命名空间之后),则无法编译错误"count unclared(首次在此函数中使用)" - 突出显示行'count ++; ".

或者,Codepad导致以下错误:

In function 'int main()':
Line 16: error: reference to 'count' is ambiguous
compilation terminated due to -Wfatal-errors.
Run Code Online (Sandbox Code Playgroud)

谢谢,

将.

Shi*_*oko 9

您的count变量和变量之间可能存在冲突std::count.您不应该使用,using namespace std因为这会将标准库中的所有内容放入全局命名空间,名称很快就会发生冲突.

使用特定的使用行using std::cin;代替.