一个函数要成为一个类的友员函数,需要在该类的定义中声明该函数,并在函数声明的前面加上关键字friend。
友元函数本身的定义没有什么特殊要求,可以是一般函数,也可以是另一个类的成员函数。
为了能够在友元函数中访问并设置一个类的私有数据成员,友元函数一般将该类的引用作为函数参数。
//HW_CH03_22(2)友元函数的使用
#include<iostream>
using namespace std;
class A {
friend void display(A&);
// 为了能够在友元函数中访问并设置一个类的私有数据成员,友元函数一般将该类的引用作为函数参数。
private:
int a;
public:
A(int x = 0) {
a = x;
}
};
void display(A& A1) {
cout << "a=" << A1.a << endl;
}
int main() {
A a1(19);
display(a1);
}
/*
class A {
friend void display();
private:
int a;
public:
A(int x = 0) {
a = x;
}
};
void display() {
cout << "a=" << a << endl;
}
int main() {
A a1(19);
a1.display();//class A没有成员函数display()
}
*/