📄 friend.cpp
字号:
#include <iostream.h>
class A; // 声明类A,用于类B的定义
class B // 定义类B
{
public:
void BMemberFun(A&);
};
class C // 定义类C
{
public:
void CMemberFun(A&);
};
class A // 定义类A
{
friend void display(A); // 友元声明,友元函数是一个一般函数
friend void B::BMemberFun(A&); // 友元函数是另一个类B的成员函数
friend C; // 类C是类A的友元类
private:
int a;
int b;
public:
A(int x=0, int y=0) {a=x; b=y;}
};
void display(A e)
{
cout<<"a="<<e.a<<", "<<"b="<<e.b<<endl; // 输出类A的私有成员a和b
}
void B::BMemberFun(A& e) // 定义友元函数,使用引用作为参数
{
e.a=10; // 修改类A的私有成员a
}
void C::CMemberFun(A& e) // 定义友元类C的成员函数,使用引用作为参数
{
e.b=20; // 修改类A的私有成员b
}
void main()
{
A a1(1, 2);
display(a1);
B b1;
b1.BMemberFun(a1);
display(a1);
C c1;
c1.CMemberFun(a1);
display(a1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -