第3讲类和对象(下)_215807332范例.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对象的赋值和复制 对象动态建立和释放 对象浅拷贝问题 对象数组 对象指针 共用数据的保护 静态成员 3.1 对象的赋值和复制 对象复制:用已有对象快速地复制出多个完全相同对象。 格式1:类名 对象2(对象1);如:Box box2(box1); 格式2:类名 对象名2 = 对象名1; 在建立对象2时调用一个特殊的构造函数—拷贝构造函数(copy constructor).系统缺省的拷贝构造函数的举例: Box::Box(const Box b) {height=b.height; width=b.width; length=b.length;} 复制构造函数只有一个参数,参数是本类的对象 3.2 对象的动态建立和释放 用new和delete运算符动态申请和释放内存(参见7.1.7节) 如果定义了Box类,可动态地建立一个对象: Box *pt=new Box(12,15,18); 系统会开辟一段内存空间来存放一个Box类无名对象;同时调用该类的构造函数,以使该对象初始化.如果内存量不足而无法构建,则返回一个0指针值 何谓浅拷贝 struct变量的复制 struct student { char *p; int sno; float grade; } a={“ZhangSan”, 200301, 85.5}, b; b = a; 3.4 对象数组 数组初始化格式:类名 对象名[长度]={构造函数(实参列表1),构造函数(实参列表2),…} 例:Student Stud[2]={Student(1001,18,87), Student(1002,19,76)} 例. 对象数组的使用方法 3.5 对象指针 对象的相关指针类型 指向对象指针 指向对象数据成员指针 指向对象函数指针 this 指针 3.5 对象指针 3.5 对象指针 指向对象数据成员的指针变量。指向对象中某个数据成员的地址。定义方法和普通变量的指针变量方法相同。例:int *p1; 如果类的数据成员为公用,则可在类外通过对象成员的指针变量访问。例:p1=t1.hour; cout*p1endl this 指针:每个成员函数都包含一个特殊的指针,即this。其值是当前被调用的成员函数所在的对象的起始地址 例:当a.volume()时,系统把对象a的起始地址赋给this指针。height*width*length 编译时即为:(this-height) *(this-width)*(this-length),相当于:(a.height)*(a.width)*(a.length) 3.6 共用数据的保护 常变量:在程序运行中不能改变的变量,const int a=3; 量变量和符号常量关系:const比#define更灵活,有类型 3.6 共用数据的保护 3.6 共用数据的保护 3.6 共用数据的保护 3.7 静态成员 3.7 静态成员 3.7 静态成员 对象属性:如果有n个同类的对象,那么每一个对象都有相同的数据成员,不同对象数据成员各不相同 类属性:描述类的所有对象共同特征的数据项,对任何同类对象,其属性值是相同的,即类的静态数据成员 静态数据成员的用途是实现同类对象之间数据共享 静态成员的初始化 3.7 静态成员 (1)如果静态数据成员被定义为私有的,是否可以在类外直接引用?如何引用? 答:不能,通过公共成员函数来引用 (2)类的静态数据成员的主要作用是什么? 答:实现同类对象之间的数据共享 (3)公用静态数据成员与全局变量的不同? 答:作用域不同,局限于类作用域。而全局变量在整个程序中 (4)静态成员函数是否可以访问类中非静态数据成员? 答:调用对象的成员函数时,系统会把对象地址赋给成员函数的this指针。而静态成员函数并不属于某一对象,没有this指针.由此决定了静态成员函数不能直接访问类中非静态成员 第3次实验作业 第3次实验作业选择题 (1)商店销售某一商品,每天公布统一折扣(discount)。同时允许销售人员销售时灵活掌握价格(price)。在此基础上,对每一次购10件以上者,可以享受9.8折扣优化。现已知当天的3名售货员的销售情况如下: 销售员号 销售件数 销货价格  101 5 23.5 102 12 24.5 103 100  21.5 编写程序,计算当日此商品的总销售款(sum),以及每件商品的

文档评论(0)

2226657222 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档