欢迎来到天天文库
浏览记录
ID:55514630
大小:101.00 KB
页数:6页
时间:2020-05-15
《实验六 静成员与友元.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验六静态成员与友元姓名:王永杰10电子学号:1014860069【实验目的】1.掌握友元函数的定义、使用方法以及特点。2.握静态成员函数和静态数据成员的功能。【实验内容】1.调试下列程序,写出输出结果,并分析输出结果。#include"iostream.h"classMy{public:My(intaa){A=aa;B-=aa;}staticvoidfun(Mym);private:intA;staticintB;};voidMy::fun(Mym){cout<<"A="<2、<"B="<3、之后的特殊地 带为它提供定义和初始化; 5.私有静态数据成员不能被类外部函数访问,也不能用对象进行访问。2.设计一个含有静态成员、静态成员函数的程序,分析程序结果,理解静态成员(函数)与类和对象的关系。参考程序:#includeclassA{friendclassB;//友元类的声明public:voidSet(inti){x=i;}friendintadd(A&f1);//友元函数的声明voidDisplay(){cout<<"x4、="<5、main(){Ab;b.Set(5);//友元函数的调用cout<6、函数。⑵、分析友元类B的成员函数如何引用类A的私有成员的?友元函数的特点是能够访问类中的私有成员的非成员函数。通过声明一类A的友元函数friendintadd(A&f1);,就可以用这个函数直接访问类A的私有成员了。⑶、根据运行结果分析下列程序中静态成员B值的变化和静态成员函数的引用方式。#includeclassM{public:M(inta){A=a;B+=a;}staticvoidf1(Mm);//静态公有成员函数声明private:intA;staticintB;//静态私有7、成员};intM::B=0;voidM::f1(Mm)//在静态成员函数中对不同类型成员的引用方式{cout<<"A="<8、0){x=y=i;}My(doublei,doublej){x=i;y=j;}My(My&m){x=m.x;y=m.y;}frienddoubledist(My&a,My&b);private:doublex,y;};doubledist(My&a,My&b){doubledx=a.x-b.x;doubledy=a.y-b.y;returnsqrt(dx*dx+dy*dy);}intmain(){Mym1,m2(
2、<"B="<
3、之后的特殊地 带为它提供定义和初始化; 5.私有静态数据成员不能被类外部函数访问,也不能用对象进行访问。2.设计一个含有静态成员、静态成员函数的程序,分析程序结果,理解静态成员(函数)与类和对象的关系。参考程序:#includeclassA{friendclassB;//友元类的声明public:voidSet(inti){x=i;}friendintadd(A&f1);//友元函数的声明voidDisplay(){cout<<"x
4、="<5、main(){Ab;b.Set(5);//友元函数的调用cout<6、函数。⑵、分析友元类B的成员函数如何引用类A的私有成员的?友元函数的特点是能够访问类中的私有成员的非成员函数。通过声明一类A的友元函数friendintadd(A&f1);,就可以用这个函数直接访问类A的私有成员了。⑶、根据运行结果分析下列程序中静态成员B值的变化和静态成员函数的引用方式。#includeclassM{public:M(inta){A=a;B+=a;}staticvoidf1(Mm);//静态公有成员函数声明private:intA;staticintB;//静态私有7、成员};intM::B=0;voidM::f1(Mm)//在静态成员函数中对不同类型成员的引用方式{cout<<"A="<8、0){x=y=i;}My(doublei,doublej){x=i;y=j;}My(My&m){x=m.x;y=m.y;}frienddoubledist(My&a,My&b);private:doublex,y;};doubledist(My&a,My&b){doubledx=a.x-b.x;doubledy=a.y-b.y;returnsqrt(dx*dx+dy*dy);}intmain(){Mym1,m2(
5、main(){Ab;b.Set(5);//友元函数的调用cout<6、函数。⑵、分析友元类B的成员函数如何引用类A的私有成员的?友元函数的特点是能够访问类中的私有成员的非成员函数。通过声明一类A的友元函数friendintadd(A&f1);,就可以用这个函数直接访问类A的私有成员了。⑶、根据运行结果分析下列程序中静态成员B值的变化和静态成员函数的引用方式。#includeclassM{public:M(inta){A=a;B+=a;}staticvoidf1(Mm);//静态公有成员函数声明private:intA;staticintB;//静态私有7、成员};intM::B=0;voidM::f1(Mm)//在静态成员函数中对不同类型成员的引用方式{cout<<"A="<8、0){x=y=i;}My(doublei,doublej){x=i;y=j;}My(My&m){x=m.x;y=m.y;}frienddoubledist(My&a,My&b);private:doublex,y;};doubledist(My&a,My&b){doubledx=a.x-b.x;doubledy=a.y-b.y;returnsqrt(dx*dx+dy*dy);}intmain(){Mym1,m2(
6、函数。⑵、分析友元类B的成员函数如何引用类A的私有成员的?友元函数的特点是能够访问类中的私有成员的非成员函数。通过声明一类A的友元函数friendintadd(A&f1);,就可以用这个函数直接访问类A的私有成员了。⑶、根据运行结果分析下列程序中静态成员B值的变化和静态成员函数的引用方式。#includeclassM{public:M(inta){A=a;B+=a;}staticvoidf1(Mm);//静态公有成员函数声明private:intA;staticintB;//静态私有
7、成员};intM::B=0;voidM::f1(Mm)//在静态成员函数中对不同类型成员的引用方式{cout<<"A="<8、0){x=y=i;}My(doublei,doublej){x=i;y=j;}My(My&m){x=m.x;y=m.y;}frienddoubledist(My&a,My&b);private:doublex,y;};doubledist(My&a,My&b){doubledx=a.x-b.x;doubledy=a.y-b.y;returnsqrt(dx*dx+dy*dy);}intmain(){Mym1,m2(
8、0){x=y=i;}My(doublei,doublej){x=i;y=j;}My(My&m){x=m.x;y=m.y;}frienddoubledist(My&a,My&b);private:doublex,y;};doubledist(My&a,My&b){doubledx=a.x-b.x;doubledy=a.y-b.y;returnsqrt(dx*dx+dy*dy);}intmain(){Mym1,m2(
此文档下载收益归作者所有