代码之家  ›  专栏  ›  技术社区  ›  Darshan Kalola

如何正确使用“使用命名空间foo”

  •  1
  • Darshan Kalola  · 技术社区  · 8 年前

    我对在c++中使用名称空间x有点困惑。为什么在这种情况下是不正确的?“使用名称空间”是否仅适用于我们包含的其他文件?

    #include <iostream>
    using namespace A;
    
    
    namespace A {
        void print() {
    
    std::cout << "From namespace A" << std::endl;
        }
    }
    
    namespace B {
        void printB() {
            std::cout << "From namespace B" << std::endl;
        }
    }
    
    
    int main() {
        print();
        printB(); 
    }
    
    2 回复  |  直到 8 年前
        1
  •  2
  •   user0042    8 年前

    正如错误消息告诉您的那样 here 这些函数不在当前范围内声明。
    ::print , ::printB .

    您需要使用命名空间范围运算符( :: )如下所示:

    A::print();
    B::printB(); 
    

    或者 using 声明:

    using A::print;
    using B::printB;
    
        2
  •  1
  •   Martin Beckett    8 年前

    A::print() B::print() 而不必重命名其中一个 printB()

    推荐文章