cedric_2012
专注学习的我
2018-11-30 09:12

关于C++命名空间的一个问题

  • c++
  • namespace
  • ios

#include
using namespace std;

namespace my_space {
int size;
void print();
}
using namespace my_space;
void my_space::print() {
cout << "调用成功" << endl;
}

/*位置1*/

int main()
{
print();
return 0;
}
以上代码是在一个网课中看到的,为什么在使用了using指示后对print()的定义还要加my_space作用域名?如果去掉了my_space::系统会报错

            另外,如果我在此代码的基础上在位置1加上my_space::size=1;也会报错

error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
error C2086: “int my_space::size”: 重定义

请问这是什么原因呢?

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答