欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    第10讲知识点介绍.ppt

    • 资源ID:388354       资源大小:657.75KB        全文页数:18页
    • 资源格式: PPT        下载积分:2000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要2000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第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 (作业、实验、课设等都提交到泛雅平台),


    注意事项

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开