Ⅰ c++中可不可以在一个类中访问另一个类的私有成员
可以,只要定义该类为另一个类的友元类即可。
友元类:
class A
{
friend class B
private: int aa;
};
class B
{
public:
void output()
{
cout << a.aa << endl;
}
private: A a;
}
使用友元类时:
(1) 友元关系不能被继承。
(2) 友元关系是单向的,不具有交换性。若类B是类A的友元,类A不一定是类B的友元,要看在类中是否有相应的声明。
(3) 友元关系不具有传递性。若类B是类A的友元,类C是B的友元,类C不一定是类A的友元,同样要看类中是否有相应的申明。
(1)通过友元类访问矩形类私有数据扩展阅读:
友元类使用注意事项:
1、友元可以访问类的私有成员。
2、只能出现在类定义内部,友元声明可以在类中的任何地方,一般放在类定义的开始或结尾。
3、友元可以是普通的非成员函数,或前面定义的其他类的成员函数,或整个类。
4、类必须将重载函数集中每一个希望设为友元的函数都声明为友元。
5、友元关系不能继承,基类的友元对派生类的成员没有特殊的访问权限。如果基类被授予友元关系,则只有基类具有特殊的访问权限。该基类的派生类不能访问授予友元关系的类。
参考资料来源:网络-友元类