《面向对象程序设计实验》课程教学大纲
第六次实验: 友元的使用方式
1.学时:2课时; 2.实验类型:验证性实验 3.实验目的:
(1)了解友元机制的由来和本质; (2)理解友元机制的主要作用;
(3)掌握友元函数、友元成员和友元类的声明、定义和使用方法,并注
意友元机制的安全风险问题。
4.实验内容:
实验题目1:友元函数的声明、定义和使用 (1)程序功能简介
编程实现一个类的友元函数的声明、定义和使用代码。 (2)程序设计要求
① 采用声明和定义分开的方式实现一个类的友元函数;
② 通过调用友元函数,实现对一个类内所有访问权限的成员进行访问,验证友元机制。 (3)程序设计说明
① 参考教材例4.2(见P86)、例4.3(见P86)、例4.4(见P87)。 (4)撰写实验报告
参考实验报告模板。
实验题目2:友元成员和友元类的声明、定义和使用 (1)程序功能简介
编程实现一个类的友元成员和友元类的声明、定义和使用代码。 (2)程序设计要求
① 采用声明和定义分开的方式实现一个类的友元成员和友元类; ② 通过调用友元成员以及友元类的对象,实现对一个类内所有访问权限的成员进行访问,验证友元机制。 (3)程序设计说明
① 参考教材例4.5(见P91)、例4.6(见P92)、例4.7(见P93)。 (4)撰写实验报告
参考实验报告模板。
实验题目3:利用友元机制计算两点之间的距离 (1)程序功能简介
设计一个点(Point)类,其中包括一对坐标数据成员、一个求两点之间距离的友元接口和显示坐标点的成员函数,并用数据进行测试。 (2)程序设计要求
① 首先,采用友元函数distance()的方式实现友元接口; ② 其次,采用友元成员distance()的方式实现友元接口; ③ 最后,尝试采用友元类的方式实现友元接口。 (3)程序设计说明
① 在头文件中声明类,在程序文件中定义类的成员函数; ② 采用构造函数进行对象的初始化;
③ 对于友元成员和友元类两种实现方式,可以另外定义一个求解两点距离的ComputeDistance类,将distance()作为该类的成员函数。 (4)撰写实验报告
参考实验报告模板。