第6章 类和对象(一).ppt
上传人:sy****28 上传时间:2024-09-14 格式:PPT 页数:29 大小:204KB 金币:18 举报 版权申诉
预览加载中,请您耐心等待几秒...

第6章 类和对象(一).ppt

第6章类和对象(一).ppt

预览

免费试读已结束,剩余 19 页请下载文档后查看

18 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第二部分C++面向对象程序设计6.1OOP概述6.1面向对象程序设计概述6.2类的定义✿定义类的成员函数可在类体内,也可在类体外。若在体外,需加类名和作用域分辨符“::”。类体内定义的成员函数为内联函数,使用inline可使类体外定义的成员函为内联函数。6.3对象的定义和对象成员的引用rectr1,r2,r3;6.3对象的定义和对象成员的引用讨论:通常把类的数据成员定义为私有,并通过公有成员函数(接口函数)对它们进行访问。定义类的私有成员可实现数据隐藏,而数据隐藏对维护对象的完整性是必不可少的。接口函数可以把对数据的存储细节与数据的使用细节分开。6.4对象的初始化关于构造函数的讨论:若用户没有定义构造函数,编译程序将自动生成一个无参的、函数体为空的构造函数。调用时不必提供实参的构造函数称为缺省构造函数。构造函数由系统在创建对象时自动调用,调用时机为:✿遇到对象定义时自动调用构造函数;✿遇到new类名或new类名[长度]时自动调用缺省构造函数,遇到new类名(实参表)时自动调用构造函数;✿遇到类名(实参表)时自动调用构造函数。6.4对象的初始化关于析构函数的讨论:若用户没有定义析构函数,编译程序将自动生成一个函数体为空的析构函数。它可以释放除用new运算外为对象分配的所有空间。如果用new运算符为对象分配了空间,应该在类中定义析构函数。否则,可能会出现内存泄漏。析构函数由系统在对象生存期结束时自动调用。6.4对象的初始化关于拷贝构造函数的讨论:若用户没有定义拷贝构造函数,编译程序将自动生成一个拷贝构造函数,该函数把已定义对象的每个数据成员复制给新创建对象的对应数据成员。由系统生成的拷贝构造函数可能会造成指针悬挂和内存泄漏。拷贝构造函数由系统自动调用,调用时机为:✿用一个已定义的对象初始化一个新的同类对象;✿在调用一个函数时,把对象作为函数实参传递给函数形参;✿对象作为函数返回值。6.4对象的初始化关于子对象初始化的讨论:当在程序中创建具有子对象的类的对象时,执行构造函数的顺序是:(1)按各子对象的定义顺序调用它们各自所属类的构造函数对各子对象初始化。(2)执行对本类基本类型数据成员初始化。(3)执行本类的构造函数体。6.6其它定义类的形式structstudent{intno;//学号charname[15];//姓名charsex;//性别doublescore[3];//3门课程的成绩};structstudents1;//s1对应的存储空间见下图