命名空间可以用于隔离相同名字的函数的可见性:
#includeusing namespace std; namespace A{ void f() { cout<<"namespace A, fun: f"< 通常而言,命名空间可以严格的隔离不同空间内名字的可见性:
#includeusing namespace std; namespace A{ void f() { cout<<"namespace A, fun: f"< 但是通过类对象参数,可以将可见范围扩展到类对象参数所在的命名空间:
#includeusing namespace std; namespace A{ class CA{}; void fa(CA ca) { cout<<"namespace A, fun: fa"< 如果上例中命名空间B内也定义了函数fa,则会造成
#includeusing namespace std; namespace A{ class CA{}; void fa(CA ca) { cout<<"namespace A, fun: fa"< 但是如果将命名空间B内的fa封装在类中,类的成员函数的可见优先性要高于其他函数,因此不会报编译错误:
#includeusing namespace std; namespace A{ class CA{}; void fa(CA ca) { cout<<"namespace A, fun: fa"<



