基本上我在一个 namspace 下有 2 个类,我想让一个类的方法之一(调用它B::fun
)访问另一个类的私有成员(调用它class A
)。但是,我似乎无法让它工作。这是一个说明问题的简单示例:
namespace ABC // this could be global too
{
class A;
class B
{
public:
int fun(A member);
};
class A
{
public:
friend int B::fun(A member);
private:
int aint;
};
int B::fun(A member)
{
return member.aint; // error: member ABC::A::aint is inaccessible
}
}
为什么我会收到此错误?
注意:似乎是编译器问题(使用 VC++ 11)。