:友元函数?友元类?
时间: 2024-06-13 10:06:54 浏览: 20
友元函数是指在一个类的定义中,用friend关键字修饰一个函数的原型声明,那么这个函数就是该类的友元函数了。友元函数可以访问该类的所有成员,包括私有成员。友元函数并不是该类的成员函数,因此它不能直接访问该类的成员变量和成员函数,但是可以通过对象的引用或指针来访问。
友元类是指在一个类的定义中,用friend关键字修饰另一个类的类名,那么这个类就是该类的友元类了。友元类可以访问该类的所有成员,包括私有成员。友元类并不是该类的成员类,因此它不能直接访问该类的成员变量和成员函数,但是可以通过对象的引用或指针来访问。
以下是一个友元函数和友元类的示例:
```cpp
#include <iostream>
using namespace std;
class A {
private:
int a;
public:
A() { a = 0; }
friend void showA(A&); // 友元函数
friend class B; // 友元类
};
void showA(A& x) {
cout << "A 的私有成员 a 的值为:" << x.a << endl;
}
class B {
public:
void showA(A& x) {
cout << "A 的私有成员 a 的值为:" << x.a << endl;
}
};
int main() {
A a;
showA(a); // 通过友元函数访问 A 的私有成员
B b;
b.showA(a); // 通过友元类访问 A 的私有成员
return 0;
}
```