友元函数例程

#include <iostream>
#include
<cstring>
using namespace std;

class boy;//向前引用

class girl{//声明类1
private:
char name[25];
int age;
public:
void init(char N[],int A);//声明成员函数
friend void prdata(const girl plg,const boy plb);//友元函数
};

void girl::init(char N[],int A)//实现成员函数
{
strcpy(name,N);
age
= A;
}

class boy{//声明类2
private:
char name[25];
int age;
public:
void init(char N[],int A);//成员函数
friend void prdata(const girl plg,const boy plb);//两个类调用同一个友元函数
};

void boy::init(char N[],int A)//实现成员函数
{
strcpy(name,N);
age
= A;
}
//友元函数就是一个普通的函数,只是在类内部被声明为友元
//本友元函数被两个类同时声明为友元
//友元函数内部的成员变量可以访问类的私有成员
//一般的类成员变量,只能通过调用成员函数访问私有成员,不能直接访问私有成员
void prdata(const girl plg,const boy plb)
{
cout
<<"女生 "<<plg.name<<','<<plg.age<<"岁;"<<endl;
cout
<<"男生 "<<plb.name<<','<<plb.age<<"岁."<<endl;
}

int main()
{
girl G1;
boy B1;
G1.init(
"stacy",12);
B1.init(
"jim",11);

prdata(G1,B1);

return 0;
}

原文地址:https://www.cnblogs.com/hnrainll/p/2050236.html