qfedu-cpp-level/day4/d6.cpp

49 lines
721 B
C++
Raw Permalink Normal View History

// 友元
// 友元的类成员函数
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
class B;
class C
{
public:
// 在此函数内,要访问 B 类中的所有成员,将此函数在 B 类中声明友元
// 先声明,不能实现
void showB(B &b);
};
class B
{
// 声明友元的成员函数
friend void C::showB(B &b);
private:
int x;
public:
B(int x) : x(x) {}
void show()
{
cout << "成员函数 x = " << x << endl;
}
};
// 定义或实现友元的成员函数
void C::showB(B &b)
{
cout << "友元的成员函数 b.x = " << b.x << endl;
}
int main()
{
B b(100);
b.show();
C c;
c.showB(b);
return 0;
}