有人可以向我解释命名空间中变量的生命周期吗?假设我有以下文件:
文件.h:
// ...
namespace variables{
int x, y;
}
文件.cpp:
#include "file.h"
using namespace variables;
int main(){
...
}
x
和的范围是y
什么?我问是因为,在我正在阅读的一本书(C++ Primer Plus)中,作者推荐了using namespace
s 内部函数,所以我认为它们是在using
命令点定义的。但是,当我这样做时:
乙:
class B{
// class stuff
};
namespace variables{
int x, y;
}
然后在main.cpp
(主程序)和B.cpp
(类实现)中添加该#include "B.h"
行,我得到一个错误,我有多个定义variables::x
and variables::y
,即使using
在任何文件中都没有。这是怎么回事?我是否混淆了两个不同的概念?