39 lines
638 B
C++
39 lines
638 B
C++
|
// 友元
|
||
|
// 全局友元函数
|
||
|
#include <iostream>
|
||
|
#include <cstring>
|
||
|
#include <cstdlib>
|
||
|
|
||
|
using namespace std;
|
||
|
|
||
|
class B
|
||
|
{
|
||
|
// 声明全局函数的友元
|
||
|
friend void show(B &b); // 将全局的 show() 函数设置为当前类的友元函数
|
||
|
|
||
|
private:
|
||
|
int x;
|
||
|
|
||
|
public:
|
||
|
B(int x) : x(x) {}
|
||
|
void show()
|
||
|
{
|
||
|
cout << "成员函数 x = " << x << endl;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
// 全局的友元函数
|
||
|
void show(B &b)
|
||
|
{
|
||
|
// b 的私有成员
|
||
|
cout << "全局友元函数 b.x = " << b.x << endl;
|
||
|
}
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
B b(100);
|
||
|
b.show(); // 成员函数 x = 100
|
||
|
show(b); // 全局友元函数 b.x = 100
|
||
|
return 0;
|
||
|
}
|