我的代码如下所示,当我编译它时,我收到此错误:
two.cpp:5:错误:在'='标记之前的预期构造函数,析构函数或类型转换
#include <iostream>
using namespace std;
namespace a1{
int a=3;
a=4;
}
int main(){
cout << a1::a<<endl;
}
Run Code Online (Sandbox Code Playgroud)
我在两个文件中定义了一个命名空间时遇到了这个问题,在第二个文件中,我无法为第一个文件中定义的变量赋值.
我正在学习初学ANSI C++,并且在书中找不到任何关于此的信息.
您可以在命名空间范围内声明(包括您可以拥有定义的声明),例如
int a = 3;
Run Code Online (Sandbox Code Playgroud)
但是在命名空间范围内不能有非声明语句.
例如,如
a = 4;
Run Code Online (Sandbox Code Playgroud)
不是宣言:它纯粹要求一种效果.
但是,您可以将其放在函数体中,例如main.
干杯&hth.,
命名空间的目的是避免名称冲突。因此,请用命名空间包围变量和类声明。但命名空间本身并不提供运行代码的脚手架。你的 a=4; 是怎么回事?陈述 ?应该在哪里执行?您需要将其放在函数或方法中,而不是放在命名空间中。
| 归档时间: |
|
| 查看次数: |
651 次 |
| 最近记录: |