- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
类和对象的定义和使用.doc
实 验 报 告6 / 2017 学年 第 二 学期)
课程名称 面向对象程序设计及C++ 实验名称 实验一: 类和对象的定义及使用 实验时间 2017 年 3 月 25 日 指导单位 光电工程学院 指导教师 陈景强
学生姓名 班级学号 学院(系) 专 业
实 验 报 告
实验名称 类和对象的定义及使用 指导教师 实验类型 验证 实验学时 2 实验时间 实验目的和要求
(1)掌握类与对象的定义与使用方法
(2)正确掌握类的不同属性成员的使用方法。
(3)掌握构造函数与析构函数的概念,理解构造函数与析构函数的执行过程。()掌握友元的定义和用()指针和引用作为函数参数的应用。定义一个时间类Time,有三个私有成员变量Hour、Minute、Second,定义构造函数、析构函数以及用于改变、获取、输出时间信息的公有函数,主函数中定义时间对象,并通过调用各种成员函数完成时间的设定、改变、获取、输出等功能。① 按要求完成类的定义与实现。
② 修改数据成员的访问方式,观察编译结果。
③ 在Time类中定义一个成员函数,用于实现时间增加一秒的功能,主函数中通过对象调用该函数,并输出增加一秒后的时间信息。
④ 定义一个普通函数void f(Time t)
{
t. PrintTime( );
}
在Time类中增加拷贝构造函数的定义,主函数中调用该函数,运用调试工具跟踪,分析整个程序调用构造函数(包括拷贝构造函数)和析构函数的次数;再将f函数的形式参数分别修改为引用参数和指针参数(此时函数代码修改为{t- PrintTime( );},主函数中调用,再分析此时调用构造函数和析构函数的次数。
构造函数与析构函数的调用方式及执行顺序是:
先是构造函数然后是析构函数。
调用方式是自动调用,执行顺序是先执行构造函数,待程序结束时再执行析构函数。 实 验 报 告
③取消类中成员函数IncreaceOneSecond(?)的注释标志,将函数补充完整,注意时间在增加一秒情况下的进位关系。
oid f(Time t);
F(t0)
1
1
2
void f(Time t);
F(t0)
1
0
1
void f(Time *t);
F(p)
1
0
1
通过以上结果,关于对象作形式参数、对象引用作形式参数、对象指针作形式参数时构造函数、析构函数的调用次数及顺序,你得到什么结论? 实 验 报 告
实验题目(2) 定义一个Girl类和一个Boy类,这两个类中都有表示姓名、年龄的私有成员变量,都要定义构造函数、析构函数、输出成员变量信息的公有成员函数。
①根据要求定义相应的类。
②将Girl类作为Boy类的友元类,在Girl类的成员函数VisitBoy(Boy )中访问Boy类的私有成员,观察程序运行结果。
③在Boy类的某成员函数VisitGirl(Girl )中试图访问Girl类的私有成员,观察编译器给出的错误信息,理解原因。
④主函数中正确定义两个类的对象,调用各自的成员函数实现相应功能。
⑤再将Boy类作为Girl类的友元类,在Boy类的某成员函数VisitGirl(Girl )中访问Girl类的私有成员,观察编译器给出的信息。
⑥删除两个类中的函数VisitGirl(Girl ) ,VisitBoy(Boy ),定义一个顶层函数VisitBoyGirl(Boy , Girl ),作为以上两个类的友元,通过调用该函数输出男孩和女孩的信息。
实验解答:
①定义相应的类将Girl类作为Boy类的友元类,Girl类的成员函数VisitBoy(Boy )③ 在Boy类的某成员函数VisitGirl(Girl )中试图访问Girl类的私有成员,编译器给出的错误信息,Girl类的Boy; 在主函数中通过Boy类对象. VisitGirl(Girl类对象) 的形式输出Girl类对象的信息。 VisitBoy(Boy类对象);和Boy类对象. VisitGirl(Girl类对象) ;和输出两个类对象的信息。
D:\Microsoft Visual Studio\MyProjects\实验二\exp3_1.cpp|14|error: no `void Girl::VisitBoy(Boy) member function declared in class `Girl|
G1.VisitBoy(B2);
B2.VisitGir
文档评论(0)