首页 > 解决方案 > namespace myspace { int x } 现在为什么 `myspace::x=3;` 会出错?

问题描述

代码

#include <iostream>
namespace myspace
{
    int x;
}

myspace::x=3; // This line is giving error.
int main()
{
    myspace::x=5;
    return 0;
}

输出

Error: C++ requires a type specifier for all declarations

那么,为什么myspace::x=3;C++ 需要所有声明的类型说明符的行给出错误呢?

标签: c++namespaces

解决方案


该声明

myspace::x=3;

不是初始化,而是简单的分配。和之前的没什么区别

myspace::x=5;

你有里面的main功能。

任何不是声明或定义的语句都不能在函数之外。

如果要初始化变量,请在定义处进行:

namespace myspace
{
    int x = 3;
}

推荐阅读