- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 C++面向对象程序设计(一) 3.1 类和对象 3.2 继承和派生类 3.3 多态性和虚函数 3.4 运算符重载 3.5 输入/输出流库 3.1 类和对象 由结构体的定义引入类和对象的定义 构造函数和析构函数 this 指针 对象成员初始化 静态成员 友元 常类型 一、由结构体实例引入 #includeiostream.h struct Point { int x; int y; void output() {cout“x=”xendl“y=”yendl;} }; void main() { Point pt; pt.x=5; pt.y=5; //cout“x=”pt.xendl“y=”pt.yendl; } 结构体的定义在C和C++上的区别 在C语言中,结构体当中是不能有函数的。 在C++语言中,结构体中是可以包含函数的。 结构体和类 结构体和类在C++中是可以通用的,结构体可以看作是一种特殊的类,用struct定义。 结构体和类的区别主要在于访问控制上。结构体中所有数据成员和成员函数默认都是public的;而类中则默认都是private。 public和private的区别 对于public类成员来说,它们是公有的,能被外面的程序访问。 对于private类成员来说,它们是私有的,只能由类中的函数所使用,而不能被外面的程序所访问。 类的定义 C++中定义类的一般格式如下: class类名 { public: [公有数据和函数]; protected: [保护数据和函数]; private: [私有数据和函数]; }; 各个成员函数的实现 类的定义几点说明: class:是类定义的关键字。 类名:是用户命名的标识符。 类中定义的数据和函数是类的成员,分别称为数据成员和成员函数,数据成员描述了对象的属性,而成员函数描述的是对象的行为。 访问权限:用于规定类中成员的访问属性,是C++实现封装的基本手段。 对象的定义 一个类定义后,就可以定义该类的对象: 类名 对象名表 访问对象成员: 对象名.成员名 对象名.成员名(参数表) or 对象指针名-成员名 对象指针名-成员名(参数名) 3.1 类和对象 由结构体的定义引入类和对象的定义 构造函数和析构函数 this 指针 对象成员初始化 静态成员 友元 常类型 二、构造函数和析构函数 构造函数 析构函数 构造函数的重载 拷贝构造函数 构造函数 功能:在创建对象时,使用给定的值将对象初始化。 对象建立时会被自动执行。 构造函数必须与相应的类同名。 构造函数几点注意: 构造函数最重要的作用是创建对象本身。 C++规定,每个类必须有一个构造函数,没有构造函数,就不能创建任何对象。内存的分配,就是由构造函数完成的。 C++又规定,如果一个类没有提供任何的构造函数,则C++提供一个默认的构造函数(由C++编译器提供),这个默认的构造函数是一个不带参数的构造函数,它只负责创建对象,而不做任何的初始化工作。 只要一个类定义了一个构造函数,不管这个构造函数是否是带参数的构造函数,C++就不再提供默认的构造函数。也就是说,如果为一个类定义了一个带参数的构造函数,还想要无参数的构造函数,则必须自己定义。 二、构造函数和析构函数 构造函数 析构函数 构造函数的重载 拷贝构造函数 析构函数 功能:与构造函数正好相反,用来释放一个对象,在对象删除前,用它来做一些清理工作。 在类名称前面加一个“~”符号。 析构函数几点注意: 当一个对象生命周期结束时,其所占用的内存空间就要被回收,这个工作就有析构函数来完成。 析构函数是“反向”的构造函数,析构函数不允许有返回值,更重要的是析构函数不允许带参数,并且一个类中只能有一个析构函数。 析构函数的作用正好与构造函数相反,对象超出其作用范围,对应的内存空间被系统收回或被程序用delete删除时,析构函数被调用。 根据析构函数的这种特点,我们可以在构造函数中初始化对象的某些成员变量,给其分配内存空间(堆内存),在析构函数中释放对象运行期间所申请的资源。 二、构造函数和析构函数 构造函数 析构函数 构造函数的重载 拷贝构造函数 构造函数的重载 重载构成的条件:函数的参数类型,参数个数不同才能构成函数的重载。 两个反例: 1) void output(); int output(); 2) void output(int a, int b=5); void output(int a); 二、构造函数和析构函数 构造函数 析构函数 构造函数的重载 拷贝构造函数 拷贝构造函数 功能:用一个已知的对象来初始化一个被创建的同类的对象。 定义一个拷贝函数的一般形式: 类名::拷贝构造函数
您可能关注的文档
最近下载
- 发那科机器人DCS双重安全性检查功能说明书FANUC.pdf VIP
- 2024仁爱版七年级英语下册Unit 12 Lesson 1 Better Together每课时教学设计汇编(含8个教学设计).pdf VIP
- 泪液排出系统疾病的护理.pptx VIP
- 健康顾问:养生保健典藏本.pdf VIP
- 部编版历史八年级上册第一、二单元 测试卷(含答案).pdf VIP
- T_SCJA 9-2021_非道路车辆类型.pdf VIP
- iec61850icd模型文件属性详解.pdf VIP
- 05-03-光纤陀螺方案和技术 光纤传感原理课件.pdf VIP
- 2025江苏中职职教高考(烹饪类)讲义知识考点复习资料.pdf VIP
- 初中班会课件《突围—目标成就未来》.pptx VIP
文档评论(0)