c++ - 请帮助我使用 C++ 命名空间

标签 c++ namespaces

#include <iostream>
#include <cstdlib>

namespace A {
    int a = 10;
    void get_value(){ std::cout << "a = " << a << std::endl; }
}

namespace B {
    int b;
    void get_value(){ std::cout << "b =" << b << std::endl; }
}

void set_B();

int main(){

    using namespace A; 
    get_value(); 
    set_B();

    system("PAUSE");
    return 0;
}

void  set_B(){
    using namespace B;
    b = 15;
    get_value();    // Why call to get_value() is ambiguous, error is not generated here ?
 }

为什么在 set_B() 函数中调用 get_value() 没有歧义(A::get_value()B::get_value()) 因为两者都显示为 ::get_value()set_B() 中。

最佳答案

using namespace A;set_B 中不活跃,因为它只出现在 main 中。它仅限于它出现的范围:main 的主体。

关于c++ - 请帮助我使用 C++ 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25326738/

相关文章:

C# pinvoke 释放 native c++ 内存

c++ - 将 QDate 转换为 Qstring?

c++ - 为什么要在命名空间中使用类

c# - 指定从哪个命名空间绑定(bind)属性

c# - 找不到 BaseCommandModule 类,这与正在使用的正确命名空间相反

javascript - 命名空间 SVG 上的交互

c++ - 对 C++ 多态、可查找、二进制 I/O 接口(interface)的建议

c++ - 段错误 : randomly removing elements from 2d vector

C++ 类中 unsigned char 的优化访问

c++ - `does not name a type` 错误与 `namespace std;` 和文件