- 2
- 0
- 约4.81千字
- 约 49页
- 2018-04-23 发布于广东
- 举报
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 9.2 析构函数 定义:在类名前加~作为函数名的函数,其作用与构造函数相反。 Box(); ~Box(); 没有返回值,也没有参数。它在对象结束时自动执行。 程序执行析构函数: ①auto自动局部对象:当这个函数被调用结束时,对象应该释放,在对象释放前自动执行析构函数。 ②static局部对象:在main函数结束或调用exit函数结束程序时,才调用static局部对象的析构函数。 ③全局对象:则在程序的流程离开其作用域时(如main函数结束或调用exit函数) 时,调用该全局对象的析构函数。 ④new运算符动态地建立的对象:当用delete运算符释放该对象时,先调用该对象的析构函数。 例9.5 包含构造函数和析构函数的C++程序。 本函数作用:输出 构造函数的定义 析构函数的定义 注:一个类只能有一个析构函数 对象stud1和stud2的生命期到哪结束? 9.3 调用构造函数和析构函数的顺序 一般情况下: 先构造的后析构,后构造的先析构 只适合同一类存储类别的对象 适用条件: 综合各种情况归纳如下: (1) 全局对象:它的构造函数在文件中的所有函数(包括main函数)执行之前调用。当main函数执行完毕或调用exit函数时(此时程序终止),调用析构函数。 (2) 局部自动对象:则在建立对象时调用其构造函数。如果函数被多次调用,则在每次建立对象时都要调用构造函数。在函数调用结束、对象释放时先调用析构函数。 (3) 静态(static)局部对象:则只在程序第一次调用此函数建立对象时调用构造函数一次,在main函数结束或调用exit函数结束程序时,才调用析构函数。 9.4 对象数组 一个班有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个数组元素的构造函数 实参个数不能超过数组元素个数 在定义对象数组时初始化正确的写法: Student Stud[3]={ Student(1001,18,87), Student(1002,19,76), Student(1003,18,72)}; 在建立对象数组时,分别调用构造函数,对每个元素初始化 例9.6 对象数组的使用方法。 声明有默认参数的构造函数 定义对象数组并初始化 调用a [0]的成员函数 9.5 对象指针 9.5.1 指向对象的指针 Time *pt; Time t1; // 定义t1为Time类对象 pt=t1; pt指向对象t1 定义指向类对象的指针变量的一般形式为 类名 *对象指针名; 定义pt为指向Time类对象的指针变量 通过指针访问对象和对象的成员: *pt t1 (*pt).hour pt-hour (*pt).get_time ( ) pt-get_time ( ) Time *pt; Time t1; pt=t1; pt所指向的对象中的hour成员即t1.hour pt所指向的对象中的get_time函数,即
您可能关注的文档
- 特福芬德国有机奶粉行业发展进程演示文档.ppt
- 特利尔的幽灵课程.ppt
- 特洛伊人物分析演示文档.ppt
- 特气系统报告演示文档.ppt
- 特殊本领的车中班科学特殊本领的车教程.ppt
- 狄利克雷条件教程.ppt
- 狐狸和乌鸦第1课时教程.ppt
- 狐狸和乌鸦第2课时教程.ppt
- 狐狸和乌鸦教程.ppt
- 犟龟犟龟1单元.ppt
- 新概念第二册Lesson 85 Never too old to learn讲义.docx
- Unit 1 Family Lesson 2 Introduce family members表格式公开课一等奖创新教案.docx
- 新概念第三册Lesson 4 The double life of Alfred Bloggs讲义.docx
- Unit 1+公开课一等奖创新教学设计-外研八上_2.docx
- 人教版(2019)必修第三册Unit 1 Festivals and Celebrations Listening and Speaking公开课一等奖创新教学设计.docx
- Unit 2 Why don't you talk to your parents-知识点鲁教版(五四制)(2024)英语八年级上册.docx
- Unit 1Family Lesson 1 Introduce myself 表格式公开课一等奖创新教案.docx
- Unit 4 Eat Well Section A(1a-1d) & Pronunciation公开课一等奖创新教学设计 公开课一等奖创新教学设计(表格式).docx
- 新概念第二册Lesson 73 The record-holder讲义.docx
- Unit 2 Neighbourhood Pronunciation &assessment公开课一等奖创新教案 译林版(2024)七年级下册.docx
最近下载
- 施工现场各类设备机械安全监理实施细则(参考).doc VIP
- 华东交通大学2015-2016第一学期电牵专业《电机与拖动》期末A卷.doc VIP
- 储气罐专业定期检查表.docx VIP
- JB_T 14788-2024《连续延伸带式输送机》.pdf VIP
- GB 265-1988 运动黏度.pdf
- 山东省青岛市胶州市2024-2025学年七年级上学期期末历史试题(含答案).pdf VIP
- 基于概念整合理论研究母语对二语写作的影响-外国语言学及应用语言学专业论文.docx VIP
- 中国旅游地理第四章旅游区划.ppt VIP
- 《陆上风力发电机组钢混塔架施工关键材料技术规程》.pdf VIP
- 2025年AI图像识别服务合同协议合同.docx VIP
原创力文档

文档评论(0)