- 5
- 0
- 约4.21千字
- 约 49页
- 2018-02-16 发布于浙江
- 举报
[理学]第9章 上
第9章 关于类和对象的进一步讨论 认真复习: P99-105 P115-123 为什么需要构造方法? 9.1 构造函数 9.1.2 构造函数的作用 9.1.3 带参数的构造函数 构造函数首部的一般格式: 构造函数名(类型1 形参1,类型2,形参2…) 定义对象的一般格式为 类名 对象名(实参1,实参2,…); 9.1.4 用参数初始化表对数据成员初始化 9.1.5 构造函数的重载 9.1.6 使用默认参数的构造函数 Box(int x=10,int y=10,int z=10); Box(); //无参的构造函数 Box(int x,int y); //重载 Box box1; //调用第一个还是第2个 Box box2(15,30); //调用第一个还是第3个 复习 全局变量在定义时分配内存 整个程序结束时释放内存 局部变量在函数调用时分配内存 函数调用结束释放内存 auto变量 在定义变量时分配内存 在函数退出时:auto变量会被销毁 9.2 析构函数 9.3 调用构造函数和析构函数的顺序 9.4 对象数组 9.5 对象指针 9.5.1 指向对象的指针 9.5.2 指向对象成员的指针 f (int a) { auto int b=0; static int c=3; b=b+1; c=c+1; return(a+b+c); } int main(void) { int a=2,i; for (i=0;i3;i++) printf (%d ,f(a)); return 0; } 用static 声明局部变量 7 8 9 定义:在类名前加~作为函数名的函数,其作用与构造函数相反。 Box(); ~Box(); 没有返回值,也没有参数。它在对象结束时自动执行。 程序执行析构函数: ①auto自动局部对象:当这个函数被调用结束时,对象应该释放,在对象释放前自动执行析构函数。 ②static局部对象:在main函数结束或调用exit函数结束程序时,才调用static局部对象的析构函数。 ③全局对象:则在程序的流程离开其作用域时(如main函数结束或调用exit函数) 时,调用该全局对象的析构函数。 ④new运算符动态地建立的对象:当用delete运算符释放该对象时,先调用该对象的析构函数。 例9.5 包含构造函数和析构函数的C++程序。 本函数作用:输出 构造函数的定义 析构函数的定义 注:一个类只能有一个析构函数 对象stud1和stud2的生命期到哪结束? 一般情况下: 先构造的后析构,后构造的先析构 只适合同一类存储类别的对象 适用条件: 综合各种情况归纳如下: (1) 全局对象:它的构造函数在文件中的所有函数(包括main函数)执行之前调用。当main函数执行完毕或调用exit函数时(此时程序终止),调用析构函数。 (2) 局部自动对象:则在建立对象时调用其构造函数。如果函数被多次调用,则在每次建立对象时都要调用构造函数。在函数调用结束、对象释放时先调用析构函数。 (3) 静态(static)局部对象:则只在程序第一次调用此函数建立对象时调用构造函数一次,在main函数结束或调用exit函数结束程序时,才调用析构函数。 一个班有50个学生,每个学生的属性包括姓名、性别、年龄、成绩等。如果为每一个学生建立一个对象,需要分别取50个对象名。 定义一个“学生类”对象数组,每一个数组元素是一个“学生类”对象。 数组(Array):是可以通过数组名和下标访问的同类型有序数据元素的集合。 一维数组定义: 类型说明符 数组名 [常量表达式]; int arr[10]; 对象数组:每一个元素都是同类的对象 对象数组定义: 类型说明符 数组名 [常量表达式]; Student stud[50]; /*假设已声明了Student类,定义stud数组,有50个元素*/ 构造函数中只有一个参数:(可在定义数组时直接提供实参) Student stud[3]={60,70,78}; 如: Student∷ Student(int=1001,int=18,int=60); Student stud[3]={1005,60,70}; 容易引起歧义 Student stud[3]={60,70,78,45}; 构造函数有多个参数: 对象数组的初始化 3个实参分别传递给3个数组元素的构造函数 实参个数不能超过数组元素个数 在定义对
您可能关注的文档
最近下载
- IATF16949风险和机遇评估分析表.xls VIP
- 部编版小学五年级道德与法治上册 学历案设计.pdf VIP
- 石修银2017年中考作文高分突破的三个关注点.ppt VIP
- 软件销售合同.docx VIP
- HT宏泰HT-110B-6(G2版)GSM联网防盗报警系统说明书.doc
- 课题申报书:新时代高校网络意识形态安全及其应对策略研究.docx VIP
- 2016中考作文有忌讳.ppt VIP
- 广州恩宁路历史文化街区永庆坊微改造0828正式版.pptx VIP
- GB51016-2014 非煤露天矿边坡工程技术规范.pdf VIP
- 2025年新教材人教版八年级上册初中历史全册期末复习知识点梳理汇编.docx
原创力文档

文档评论(0)