- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
福建工程学院C期末复习总结5
总复习
面向对象程序设计语言
类的声明与使用
类的声明
class 类名称
{ public:
外部接口
protected:
保护型成员
private:
私有成员
};
成员函数的实现
返回值类型 类名::函数成员名(参数表) { 函数体 }
声明对象
类名 对象名;
访问对象的公有成员
对象名.公有成员函数名(参数表)
构造函数
作用就是在对象被创建时进行初始化
函数名与类名相同,没有返回值。可以有多种重载形式。
如果类中没有写构造函数,编译器会自动生成一个默认形式的构造函数
默认构造函数是调用时可以不给实参的构造函数
程序自动调用拷贝构造函数的时刻
① 当用类的一个对象去初始化该类的另一对象时
② 如果函数的形参是类的对象,调用函数时,进行形参和实参结合时。
③ 如果函数的返回值是类的对象,函数执行完成返回调用者时。
拷贝构造函数
拷贝构造函数的形参是本类的对象的引用
作用是使用一个已经存在的对象,去初始化同类的一个新对象
如果没有定义类的拷贝构造函数,系统就会在必要时自动生成一个默认的拷贝构造函数
有指针成员时往往需要具有深拷贝功能的拷贝构造函数
析构函数
在对象的生存期即将结束的时刻被自动调用。
用来完成对象被删除前的一些清理工作。
可以是虚函数。
名字是类名的前面加一个“~”符号,不返回任何值,没有函数类型,也没有函数参数。
作用域与可见性
作用域是一个标识符在程序正文中有效的区域。
函数原型作用域、块作用域、类作用域和文件作用域。
程序运行到某一点,能够引用到的标识符,就是该处可见的标识符。
作用域可见性的一般规则是
标识符要声明在前,引用在后。
在同一作用域中,除了重载的函数名以外,不能声明同名的标识符。
在没有互相包含关系的不同的作用域中声明的同名标识符,互不影响。
如果在两个或多个具有包含关系的作用域中声明了同名标识符,则外层标识符在内层不可见。
派生类的义语法
class 派生类名:继承方式 基类名1,继承方式 基类名2,…,继承方式 基类名n
{ 派生类成员声明;};
继承方式:
public,protected,private
构造函数和析构函数
派生类构造函数的语法形式为:
派生类名::派生类名(参数总表):基类名1(参数表1),…,基类名n(参数表n),内嵌对象名1(内嵌对象参数表1),…,内嵌对象名m(内嵌对象参数表m)
{ 派生类构造函数体}
构造函数执行次序:
①调用基类构造函数。
②调用成员对象的构造函数。
③执行派生类的构造函数体中的内容。
派生类析构函数的声明方法与没有继承关系的类中析构函数的声明方法完全相同,系统会自动调用基类及对象成员的析构函数来对基类及对象成员进行清理。
析构函数的调用次序和构造函数正好相反。
虚继承
当某类的多个基类是从一个共同基类派生而来时,在最远派生类的对象中,来自不同直接基类的同名数据成员在内存中同时拥有多个拷贝,同一个函数名会有多个映射。可以使用作用域分辨符来唯一标识并分别访问它们,也可以将共同基类设置为虚基类。
在声明派生类时,可以声明虚继承方式,其语法形式为:
class 派生类名:virtual 继承方式 基类名
多态性概念
编译时的多态和运行时的多态
函数重载、运算符重载
虚函数
运算符重载的概念
运算符重载是对已有的运算符赋予多重含义
必要性
C++中预定义的运算符其运算对象只能是基本数据类型,而不适用于用户自定义类型(如类)
实现机制
将指定的运算表达式转化为对运算符函数的调用,运算对象转化为运算符函数的实参。
编译系统对重载运算符的选择,遵循函数重载的选择原则。
运算符重载的规则和限制
可以重载C++中除下列运算符外的所有运算符:. .* :: ?:
只能重载C++语言中已有的运算符,不可臆造新的。
不改变原运算符的优先级和结合性。
不能改变操作数个数。
经重载的运算符,其操作数中至少应该有一个是自定义类型。
注意
前置单目运算符与后置单目运算符的区分
类型转换符必须作为成员函数重载
=、[]、()、-只能作为成员函数重载
重载的“=”和“ []”运算符函数,返回值应声明为引用。
类如果需要重载运算符=,通常也就需要定义自己特有的拷贝构造函数,反之亦然。
流的输入运算符和输出运算符只能作为非类成员函数重载。
重载类型转换运算符时,不允许指定返回值类型(也不要写void)
题型
填空题
选择题
读程序填空、写结果
编程题
编程题
编写一个完整的C++程序,用递归方法求阶乘n!。其递归公式如下:
编程题
编写函数sum求多项式前n项之和:1-2/1+3
您可能关注的文档
- 磨石沟施工合同.docx
- 磷酸亚铁锂的制备及其应用.ppt
- 磷铁环压脱机工作原理、结构组成及日常维护.ppt
- 磁粉检测设备.ppt
- 砖木屋结构基础知识.ppt
- 礼仪 Microsoft Office PowerPoint 2007 幻灯片.pptx
- 社交、位置、移动下(SOLOMO)的用户行为研究图.ppt
- 示波管复习.ppt
- 磨损腐蚀03.ppt
- 社会主义市场经济的市场体系.ppt
- 社区招商策划方案2016-5-23.ppt
- 福建省厦门市2013届高三3月质量检查数学理试题 Word版含答案.doc
- 福建省南平市2013届高三毕业班质量检查数学理试题(word).doc
- 福平铁路桥区航道工程环境影响评价简本公示.doc
- 福建省厦门市2013届高三3月质量检查数学理试题.doc
- 福建省厦门市2017届高三第一次(3月)质量检查数学理试题(WORD版).doc
- 福建省厦门市2017届高三第一次(3月)质量检查数学理试题(小题解析).doc
- 福建省泉州市2015届高三3月教学质量检查数学(文)试题.doc
- 福建省永定区坎市中学2018届沪教版九年级化学课件:1.3.2怎样学习和研究化学(化学基本操作)(共33张).ppt
- 福岛核事故应对对策与经验总结(植田 汉语全文).ppt
文档评论(0)