【发布时间】:2021-02-05 23:40:42
【问题描述】:
我有一个命名空间。在 ns 中,我定义了一个类和一个函数。我进一步将函数定义为类的朋友,以便函数可以访问类的私有变量。在主程序中,我成功调用了该函数,而没有使用ns::对其进行quflifying。详情请看代码。
#include <iostream>
namespace ns {
class MyClass;
void print_fn(const MyClass & c);
}
namespace ns {
class MyClass {
private:
int _a;
public:
MyClass(int a): _a(a) {}
friend void print_fn(const MyClass & c);
};
void print_fn(const MyClass & c){
std::cout << c._a << std::endl;
}
}
int main()
{
ns::MyClass c(10);
print_fn(c);
return 0;
}
【问题讨论】:
标签: c++ namespaces friend function-declaration argument-dependent-lookup