关于类和对象的进一步讨论.doc_第1页
关于类和对象的进一步讨论.doc_第2页
关于类和对象的进一步讨论.doc_第3页
关于类和对象的进一步讨论.doc_第4页
关于类和对象的进一步讨论.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8C+面向对象程序设计第3章 关于类和对象的进一步讨论3.1构造函数3.1.1对象的初始化3.1.2构造函数的作用3.1.3带参数的构造函数3.1.4用参数初始化表对数据成员初始化3.1.5构造函数的重载3.1.6使用默认参数的构造函数3.2析构函数3.3调用构造函数和析构函数的顺序3.4对象数组3.5对象指针3.5.1指向对象的指针3.5.2指向对象成员的指针1. 指向对象数据成员的指针2. 指向对象成员函数的指针3.5.3 this 指针3.6共用数据的保护3.6.1常对象3.6.2常对象成员1. 常数据成员2. 常成员函数3.6.3指向对象的常指针3.6.4指向常对象的指针变量3.6.5对象的常引用3.6.6 const型数据的小结3.7对象的动态建立和释放3.8对象的赋值和复制3.8.1对象的赋值3.8.2对象的复制3.9静态成员3.9.1静态数据成员3.9.2静态成员函数3.10友元3.10.1友元函数1. 将普通函数声明为友元函数2. 友元成员函数3. 一个函数(包括普通函数和成员函数)可以被多个类声明为“朋友”,3.10.2友元类3.11类模板习题1. 构造函数和析构函数的作用是什么?什么时候需要自己定义构造函数和析构函数?2. 分析下面的程序,写出其运行时的输出结果。#include using namespace std;class Datepublic:Date(int,int,int);Date(int,int);Date(int);Date( );void display( ); private:int month;int day;int year;DateDate(int m,int d,int y):month(m),day(d),year(y) DateDate(int m,int d):month(m),day(d)year=2005; DateDate(int m):month(m)day=1;year=2005;DateDate( )month=1;day=1;year=2005;void Datedisplay( )coutmonth/day/yearendl;int main( )Date d1(10,13,2005);Date d2(12,30);Date d3(10);Date d4;d1.display( );d2.display( );d3.display( );d4.display( );return 0;3. 如果将第2题中程序的第5行改为用默认参数,即Date(int=1,int=1,int=2005); 分析程序有无问题。上机编译,分析出错信息,修改程序使之能通过编译。要求保留上面一行给出的构造函数,同时能输出与第2题的程序相同的输出结果。4. 建立一个对象数组,内放5个学生的数据(学号、成绩),用指针指向数组首元素,输出第1,3,5个学生的数据。5. 建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。6. 阅读下面程序,分析其执行过程,写出输出结果。#include using namespace std;class Studentpublic:Student(int n,float s):num(n),score(s) void change(int n,float s)num=n;score=s;void display( )coutnum scoredisplay( );p-change(101,80.5);p-display( );return 0;其他部分仍同第6题的程序。(4) 在(3)的基础上将main函数第3行改为const Student *p=&stud;(5) 再把main函数第3行改为Student *const p=&stud;8. 修改第6题的程序,增加一个fun函数,改写main函数。在main函数中调用fun函数,在fun函数中调用change和display函数。在fun函数中使用对象的引用(Student &)作为形参。9. 商店销售某一商品,商店每天公布统一的折扣(discount)。同时允许销售人员在销售时灵活掌握售价(price),在此基础上,对一次购10件以上者,还可以享受9.8折优惠。现已知当天3名销货员的销售情况为: 销货员号(num) 销货件数(quantity) 销货单价(price)101 5 23.5102 12 24.56103 100 21.5请编程序,计算出当日此商品的总销售款sum,以及每件商品的平均售价。要求用静态数据成员和静态成员函数。(提示: 将折扣discount、总销售款sum和商品销售总件数n声明为静态数据成员,再定义静态成员函数average(求平均售价)和display(输出结果)。10. 将例3.13程序中的display函数不放在Time类中,而作为类外的普通函数,然后分别在Time和Date类中将display声明为友元函数。在主函数中调用display函数,display函数分别引用Time和Date两个类的对象的私有数据,输出年、月、日和时、分、秒。请

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论