可以,只要定义该类为另一个类的友元类即可。
友元类:
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、友元可以访问类的私有成员。
2、只能出现在类定义内部,友元声明可以在类中的任何地方,一般放在类定义的开始或结尾。
3、友元可以是普通的非成员函数,或前面定义的其他类的成员函数,或整个类。
4、类必须将重载函数集中每一个希望设为友元的函数都声明为友元。
5、友元关系不能继承,基类的友元对派生类的成员没有特殊的访问权限。如果基类被授予友元关系,则只有基类具有特殊的访问权限。该基类的派生类不能访问授予友元关系的类。
参考资料来源:百度百科-友元类
在类A中声明B为友元类,这样B可以访问A的私有成员。另外变量在类中时不能赋值的,除非是const static变量#include<iostream>
using namespace std
class A
{
public:
friend class B
void fn1()
{
cout<<b
}
private:
const static int b=1
}
class B
{
public:
void fn2()
{
A a
cout<<a.b<<endl
}
}
int main()
{
B c
c.fn2()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)