15.2.2 可见域的扩展
在某个名称空间中定义或创建的程序实体,如果要在其他名称空间中或外部函数中访问,必须使用作用域限定符:或使用using声明机制来使实体可见,这可看做是作用域的扩展。对代码15.2进行修改后如代码15.3所示。
代码15.3 使用作用域限定符使实体可见AccessMethods
<——————————————文件名:example1503.cpp————————————-> 01 #include<iostream> 02 using namespace std; 03 namespace A//创建名称空间A 04 { 05 void dispA() 06 { 07 cout<<"This is A"<<endl; 08 } 09 } 10 namespace B//创建名称空间B 11 { 12 void dispB() 13 { 14 A:dispA();//名称空间A中的dispA函数 15 cout<<"This is B"<<endl; 16 } 17 } 18 int main() 19 { 20 B:dispB();//名称空间B中的dispB函数 21 return 0; 22 }
输出结果如下所示。
This is A This is B
【代码解析】通过“空间名:实体”的形式,如代码第14行的“A:dispA()”使得名称空间A中实体dispA可见。除此之外,还可使用using声明机制来扩展某个名称空间中实体的可见域。