C ++ - 命名空间中的方法被解析为全局

时间:2017-01-17 22:39:29

标签: c++ struct namespaces overloading

我是C ++的新手,我不理解这个(对我而言)奇怪的行为。

#include <iostream>

namespace A {
    struct S {};
    int bar(S s) { return 1; };
}

int main() {
    A::S s;
    std::cout << bar(s);
}

这个程序编译错误,并打印1 ...但我的知识会说应该抛出一个错误,像“bar”这样的东西没有定义;因为它在A名称空间中。

这怎么可能?

谢谢。

0 个答案:

没有答案