一个类作为另一个类的友元类
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include<iostream.h>
class B;//提前引用声明
class A
{
private:
int age1;
int score1;
public:
A(int a,int b):age1(a),score1(b){}//用初始化表对类A中的数据成员进行初始化
friend B;//声明类B为类A的友元类
};
class B
{
private:
int age2;
int score2;
public:
B(int a,int b):age2(a),score2(b){}
void display1();
void display2(A &a);
void display3(A &a,B &b);
};
void B::display1()
{
cout<<"类B中的数据为:"<<endl;
cout<<"age2:"<<age2<<endl;
cout<<"score2:"<<score2<<endl;
}
void B::display2(A &a)
{
cout<<"类A中的数据为:"<<endl;
cout<<"age1:"<<a.age1<<endl;
cout<<"score2:"<<score2<<endl;
}
int main()
{
A A1(12,67);
B B1(23,89);
B1.display百度文库();
cout<<endl;
B1.display2(A1);
cout<<endl;
B1.display3(A1,B1);
return 0;
}
运行结果,如下图所示:
cout<<"score1:"<<a.score1<<endl;
}
void B::display3(A &a,B &b)
{
cout<<"类A和B中的元素分别如下:"<<endl;
cout<<"age1:"<<a.age1<<endl;
cout<<"score1:"<<a.score1<<endl;
cout<<"age2:"<<age2<<endl;
class B;//提前引用声明
class A
{
private:
int age1;
int score1;
public:
A(int a,int b):age1(a),score1(b){}//用初始化表对类A中的数据成员进行初始化
friend B;//声明类B为类A的友元类
};
class B
{
private:
int age2;
int score2;
public:
B(int a,int b):age2(a),score2(b){}
void display1();
void display2(A &a);
void display3(A &a,B &b);
};
void B::display1()
{
cout<<"类B中的数据为:"<<endl;
cout<<"age2:"<<age2<<endl;
cout<<"score2:"<<score2<<endl;
}
void B::display2(A &a)
{
cout<<"类A中的数据为:"<<endl;
cout<<"age1:"<<a.age1<<endl;
cout<<"score2:"<<score2<<endl;
}
int main()
{
A A1(12,67);
B B1(23,89);
B1.display百度文库();
cout<<endl;
B1.display2(A1);
cout<<endl;
B1.display3(A1,B1);
return 0;
}
运行结果,如下图所示:
cout<<"score1:"<<a.score1<<endl;
}
void B::display3(A &a,B &b)
{
cout<<"类A和B中的元素分别如下:"<<endl;
cout<<"age1:"<<a.age1<<endl;
cout<<"score1:"<<a.score1<<endl;
cout<<"age2:"<<age2<<endl;