在下面的代码中,我试图让一个朋友函数访问该类的私有成员。据我了解,我正确地将其声明为朋友功能,但 VS2012 给了我错误:
error C2248: 'X::S::s_' : cannot access private member declared in class 'X::S'
谁能建议我做错了什么?这是演示我能想到的编译器错误的最简单示例。
namespace X
{
class S
{
friend std::string r(X::S &s);
std::unique_ptr<std::istream> s_;
};
}
std::string r(X::S &s)
{
auto& x = s.s_;
return "";
}