ImageVerifierCode 换一换
格式:PPT , 页数:18 ,大小:657.75KB ,
资源ID:388354      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-388354.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第10讲知识点介绍.ppt)为本站会员(周芸)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

第10讲知识点介绍.ppt

1、第10讲知识点介绍,1 友元的作用与特性2 友元函数3 友元类,第4单元 Time类,4.1 Time类需求分析与操作符重载,Time,友 元(friend),#include #include class Girl std:string name;long int teleNumber; /string public: Girl(std:string name,long int teleNumber) this-name = name; this-teleNumber = teleNumber; friend void disp( Girl ,友元函数,()友元函数的使用三个要点: 在类定义

2、中用关键字friend声明; 在类定义之外定义; 使用类对象引用作参数 ()外部友元函数的作用域是所在类的类作用域(从声明点开始到类名结束为止) ()友元函数不仅可以访问对象的公开成员,而且可以访问对象的私有成员。它的主要作用是作为访问对象的一个界面(接口),以提高程序的效率,友元成员函数,2. 友元成员函数 友元函数常常是另一个类的一个成员函数,这样通过友元函数可以使一个类对象可以直接访问另一个类对象的私有成员,这种成员函数不仅可以访问自己所在本类对象中的私有成员,还可以访问friend声明所在类的对象中的私有与公开成员 friend void Boy:disp(Girl ,友元类,3. 友

3、元类 一个类(如Boy),而不仅仅是一个成员函数,声明为另一个类(如Girl)的友元类。这时,只需先声明它(Boy),而不一定需要先定义friend void Boy:disp(Girl ,问题:系统内部存储素数,使用静态数组和动态数组存放区间的素数序列。 开始和结束区间,大小关系;多少个素数;哪些素数 Static Array:saArray常量大小;(后面细讲) Dynamic Array: *daArray;,动态内存分配,1. 用new进行动态内存分配(生) 用new进行动态内存分配,需要2个参数: 类型所分配的内存空间以多大为一个单位 数量分配的内存空间为多少个分配单位,当这个数量缺

4、省时为1个单位 最后返回一个指针所分配空间的地址这个地址是堆空间的一个地址,由编译器给出例如:,例如: int *ptrInt = new int; / 分配1个int空间,地址赋给ptrInt int* ptrInt = new int 10; / 分配10个int空间,地址赋给ptrInt double *ptrDouble = new double;/ 分配1个double空间,地址赋给ptrDouble double *ptrDouble = new double 3;/ 分配3个double空间,地址赋给ptrDouble 在分配一个单位空间时,还可以进行初始化 int *p5 =

5、new int(5); / 初始化为5 int *p0 = new int(); / 初始化为0 int *px = new int; / 初始值不可预测,回收动态存储空间(死),2. 用delete回收单个数据的动态存储空间 例如: delete ptrInt; / 释放ptrInt所指向的动态存储空间 delete ptrDouble;/ 释放ptrDouble所指向的动态存储空间 delete ptrInt;/回收数组ptrInt空间,(1)释放一个指针指向的动态存储空间时,不需要考虑该空间是否已被初始化过 (2)对一个指针使用delete后,并不将这个指针删除,它还指向先前的地址,只是

6、该地址不再有效,原指向的这片内存空间的不能再被使用。例如,有个基类Base和派生类Derived,则可以有如下操作 Base *ptr; / 声明一个指向基类的指针 / ptr = new Base; / 为ptr分配一个Base类型存储空间 delete ptr; / 释放ptr所指向的动态存储空间 ptr = new Derived; / 为ptr重新分配一个Derived类型存储空间 delete ptr; / 释放ptr所指向的动态存储空间,(3)当一个动态分配的空间不再需要时,一定要及时用delelte操作将之释放 (4)使用对象指针时,尽量避免多个指针指向同一对象 (5)当已经对一

7、个指针使用过delete,使其指向的内存释放后,再次使用delete,就会使运行的程序崩溃。克服的方法是将这个指针赋予0值。这样,即使对其再次实施delete,也可以保证程序是安全的,动态内存分配的异常处理,3. 动态内存分配中的异常处理 堆的存储空间是有限的,也有用尽的可能。在堆区已经用尽的情况下,继续请求动态分配,就会导致new操作失败,产生std:bad_alloc异常,std:bad_alloc异常定义在头文件 中。因此如果动态分配失败,程序应当进行异常处理,否则程序将会被终止,try ptrHour = new int (h);ptrMin = new int (m);ptrSec = new int (s);ptrName = new string (n);catch (bad_alloc const ,本讲内容回顾,1 友元的作用与特性 2 友元函数 friend classname foo(); 3 友元类 friend classname; 4 动态内存管理new delete,https:/ 1 友元的作用与特性2 友元函数3 友元类4 动态内存管理的使用步骤实验 实验1 简单类程序设计5 (作业、实验、课设等都提交到泛雅平台),

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1