根据http://wikistack.com/koenig-lookup-or-argument-dependent-lookup/发布的文章 koenig看起来只在命名空间的情况下发生。如果确实如此,则在下面的情况下如何进行查找
#include<iostream>
using namespace std;
class foo {
public:
friend void hello(foo obj) {
cout << "hello\n";
}
};
int main() {
foo foo_obj;
hello(foo_obj);
return 0;
}
答案 0 :(得分:1)
让hello
成为friend
foo
意味着 实际上是foo
的成员(尽管其定义为在foo
的定义中)。它的名字是#34;注入&#34;进入全局命名空间,这就是它在main
中找到的方式。