C++面向对象程序设计实验报告(6)

来源:网络收集 时间:2025-11-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

实验4数据共享与保护

4.1 实验目的和要求

1.观察程序运行中变量的作用域、生存期。 2.学习类的静态成员的使用。 3.理解类的友元函数、友元类。

4. 学习多文件结构在C++程序中的使用。

4.2 所占学时数

本实验安排2个实验课时.

4.3 实验任务

4.3.1 任务一 (1)题目名称

定义一个Girl类和一个Boy类,这两个类中都有表示姓名、年龄的私有成员变量,都要定义构造函数、析构函数、输出成员变量信息的公有成员函数。 1.根据要求定义相应的类;

2.将Girl类作为Boy类的友元类,在Girl类的成员函数visitboy(boy &)中访问boy类的私有成员,观察程序运行结果; 3.在boy类的某成员函数visitgirl(girl &)中试图访问girl类的私有成员,观察编译器给出的错误信息,理解友元的不可逆性; 4.主函数中正确定义两个类的对象,调用各自的成员函数实现相应的功能;

5.再将boy类作为girl类的友元类,在boy类的某成员函数visistgirl(girl &)中访问girl类的私有成员,观察编译器给出的信

息;

6.删除两个类中的函数visitgirl(girl &),visitboy(boy &),定义一个顶层函数visitboygirl(boy &,girl &),作为以上两个类的友元,通过调用该函数输出男孩和女孩的信息。

(2)构思过程(可用文字、流程图、UML图等方式表达) 首先,根据要求编写两个类:女孩类,男孩类;类中要包含姓名,年龄生日等信息,编写函数,使两个类能够实现基本操作,再有,要求女孩类为男孩类的友元,要用visitboy(boy &)这个关键语句,按要求编写程序,观察出错信息,最后删除类之间友元关系,定义顶层函数,用visitboygirl(boy &,girl &)访问男孩女孩类成员。 (3)程序源码

#include using namespace std; class Boy {

private :

char name1 ; int age1; public:

Boy (){name1='A';age1=0;}

Boy(char a,int i){name1=a;age1=i;} ~Boy(){} public:

int GetAge (){return age1;} void SetAge(int a){age1=a;} char GetName (){return name1;} void SetName(char a){name1=a;} void show () {

cout<<\\ }

friend class Girl; };

class Girl {

private :

char name2; int age2; public:

Girl (){name2='B';age2=1;}

Girl(char a,int i){name2=a;age2=i;} ~Girl(){} public:

int GetAge (){return age2;} void SetAge(int a){age2=a;} char GetName (){return name2;} void SetName(char a){name2=a;} void show() {

cout<<\”<

public:

void visitBoy(Boy&b) {

name2=b.name1; age2=b.age1; } };

int _tmain(int argc, _TCHAR* argv[]) {

Boy b; b.show();

b.SetName ('o');

<

}

b.SetAge(12);

cout<<\cout<<\b.show(); Girl n; n.show();

n.visitBoy(b);

cout<<\cout<<\n.show(); return 0;

注:

①在编写第3个要求时在Boy类中加代码: public :

void visitGirl(Girl&g) {

name1=g.name2; age1=g.age2; }

②在编写第5个要求时在Boy类中加代码: public :

void visitGirl(Girl&g) {

name1=g.name2; age1=g.age2; }

在Girl类中加代码: friend class Boy; 在main函数中加代码:

b.visitGirl(n); b.show ();

③编写第6个要求,定义顶层函数visitboygirl(boy &,girl &),

作为以上两个类的友元,代码如下: #include using namespace std; class Girl; class Boy {

private :

char name1 ; int age1; public:

Boy (){name1='A';age1=0;}

Boy(char a,int i){name1=a;age1=i;} ~Boy(){} public:

int GetAge (){return age1;} void SetAge(int a){age1=a;} char GetName (){return name1;} void SetName(char a){name1=a;}

friend void visitboygirl(Boy &b,Girl &g); };

class Girl {

private :

char name2; int age2; public:

Girl (){name2='B';age2=1;}

Girl(char a,int i){name2=a;age2=i;} ~Girl(){} public:

int GetAge (){return age2;} void SetAge(int a){age2=a;} char GetName (){return name2;} void SetName(char a){name2=a;}

friend void visitboygirl(Boy &b,Girl &g); };

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库C++面向对象程序设计实验报告(6)在线全文阅读。

C++面向对象程序设计实验报告(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/wenku/1136694.html(转载请注明文章来源)
Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219