C++中namespace跨多个文件的问题

在C++14标准中(我使用的是最接近的working draft, N3797),在"7.3 Namespaces"中,关于namespace有一句话,“Unlike other declarative regions, the definition of a namespace can be split over several parts of one or more translation units.” 而在"3.3.6 Namespace scope"中的第3条有如下说明:“The outermost declarative region of a translation unit is also a namespace, called the global namespace.” 这说明了平时我们用来说明“全局xxx”的“全局(global)”实际上是namespace的一个例子而已,而每个编译单元(源文件)的最外层的namespace都是global namespace,所以global namespace是天然跨多个文件的,从而了解一般namespace跨文件的行为最好的参照物是就是所谓“全局xxx”的行为——一言以蔽之,基本类似;一般情况下完全可以照搬。

举个例子,比如有如下两个文件:

/* file1.cpp */
 
#include <iostream>
 
namespace A
{
	extern int b;
	static int c = 7;
	void print_values();
}
 
int main()
{
	A::print_values();
}
/* file2.cpp */
 
#include <iostream>
 
namespace A
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值