C++面向对象程序设计总结.docx

上传人:b****6 文档编号:7353953 上传时间:2023-01-23 格式:DOCX 页数:8 大小:21.52KB
下载 相关 举报
C++面向对象程序设计总结.docx_第1页
第1页 / 共8页
C++面向对象程序设计总结.docx_第2页
第2页 / 共8页
C++面向对象程序设计总结.docx_第3页
第3页 / 共8页
C++面向对象程序设计总结.docx_第4页
第4页 / 共8页
C++面向对象程序设计总结.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

C++面向对象程序设计总结.docx

《C++面向对象程序设计总结.docx》由会员分享,可在线阅读,更多相关《C++面向对象程序设计总结.docx(8页珍藏版)》请在冰豆网上搜索。

C++面向对象程序设计总结.docx

C++面向对象程序设计总结

第一章面向对象编程原理

●近五十年间,软件技术经历了多个阶段的发展演变

●目前为止最流行的技术还是面向过程编程(POP)

●面向过程编程采用了自顶向下的设计方案,问题被看做多个执行任务的序列。

为完成这些任务,须实现一些函数。

●面向过程有两大不足,即:

(1)数据可在程序内自由迁移,程序内任何函数都会引起数据的更改,增加了数据的脆弱性。

(2)它并不能很好地建模现实世界。

●为了克服面向过程编程中的不足,人们发明了面向对象编程(OOP)。

它采用自底向上的编程方案,在程序开发中,把数据视为重要元素,不允许数据在系统内自由迁移。

它还将数据和函数紧密绑定于成为类的数据结构中,函数可操作类中的数据。

此特性称为数据封装。

●在面向对象编程中,问题被视为一系列称为对象的实体的集合。

对象是类的实例;

●将数据与程序的直接访问隔绝,这称为数据隐藏。

●数据抽象指的是,将各种必要特性合并,而不引入背景细节。

●继承是这样的一个过程,即某类的对象得到另一类对象的属性。

●多态指的是,一个名称,多种形态。

在程序中,我们可以借此定义多个同名函数。

此特性亦可重载运算符,这样一来,同一个运算符在不同的实例下,会有不同的行为。

●动态绑定指的是,给定过程的代码,直到运行期被调用时才确定。

●消息传递涉及对象名,函数(消息)名以及发送的信息。

●与传统的编程技术相比,面向对象技术具有诸多优势——最显著的当属重用技术。

●在实时系统等几乎所有的计算机领域,面向对象编程的应用程序都已受到重视。

●不少语言都支持面向对象编程,流行的语言包括C++、Smalltalk和Java。

第二章C++入门

●C++是C语言的超级

●C++在C语言的基础上,添加了一些面向对象的特性,诸如对象、继承、函数重载和运算符重载。

这些特性加强了程序的清晰性,可扩展性,使程序容易维护。

●C++可用于开发各种系统,诸如编辑器、编译器、数据库、通信系统以及其他更多复杂的实际系统。

●C++支持交互式输入输出,并引入了新的注释符号//,可用于注释单句。

它也支持C语言的注释风格。

●和C程序一样,所有C++程序的执行入口都是main()函数,并以return()语句作为结束。

头文件iostream应包含于所有使用输入输出操作的程序开头。

●所有标准C++程序都要包含usingnamespacestd指令

●典型的C++程序包括四个基本部分:

也就是头文件包含部分、类声明部分、成员函数部分和主程序部分

●和C程序一样,C++程序可用于任何文本编辑器创建

●大多数编译器提供了集成开发运行环境。

流行的编译器系统有UNIXAT&TC++、TurboC++和微软公司的VisualC++

第三章符号、表达式和控制结构

●C++有不同的符号,包括关键字、标识符、常量、字符串和操作符

●标识符指的是变量名、函数名、数组名、类名等

●C++中增加了void的一个用途,可用于声明通用指针

●C++中枚举数据类型略有不同,枚举类型名称为新的类型名。

这样我们就可以声明枚举类型的变量

●在C++中,字符数组的大小应比字符串的实际长度大1

●C++增加了指针常量和常量指针的概念,对于前者我们不能修改赋予它的地址值,对于后者,我们不能修改它指向的内容。

●在C++的内存管理和多态实现中,指针被广泛地使用。

●C++中提供了const修饰符,用于声明常量,常量也是变量,只是其值不可变更。

const修饰符默认修饰整型。

●C++的变量类型检查非常严格,它不允许不同类型变量之间的赋值。

类型转换是打破此规的唯一办法。

●C++允许我们在程序中随处声明变量,而且可以利用声明处的表达式,在运行期完成初始化。

●引用变量给之前定义的变量提供了一个别名。

它们都指向内存中的同一个数据对象。

所以,改变其中一个的值,另一边量的值也会随之改变。

●引用变量必须在声明时初始化,这建立了它和要引用的变量之间的对应关系。

●作用于解析操作符(:

)的主要用于类,以识别成员函数所属的类

●除了malloc()、calloc()、free()函数外,C++提供了两个一元操作符,即new和delete,以更好和更方便地分配和释放内存

●C++也提供了操纵器,来格式化输出数据。

最常用的操纵器为endl和setw

●C++支持七种表达式类型。

表达式中数据类型混用时,C++使用特定规则,自动地进行类型转换。

●使用类型转换操作符,C++也可显示地进行变量和表达式的类型转换

●和C语言一样,C++也支持三种基本的控制结构,也就是顺序结构,分支结构和循环结构,并使用各种控制语句实现它们,比如if、if…else、switch、do…while、while以及for。

第四章C++中的函数

●在程序的不同处,调用函数可减少程序的大小。

●在C++中,main()函数向操作系统返回一个整型值。

因为函数的返回值类型默认是整型,所以main()函数中的关键字int是可选的。

而如果没有返回语句,大部分C++编译器会提示一个警告。

●函数原型向编译器提供了函数的细节,比如参数的数目和类型,以及返回值的类型。

●C++的引用变量使我们可以传引用参数给函数。

函数也可以返回引用变量。

●当函数声明为内联时,编译器用相应的函数代码替换了函数调用。

一般情况下,小函数才使用内联。

●编译器可能会忽略函数的内联声明,如果函数声明太长或过于复杂,编译器将按常规函数编译它。

●当函数声明时,C++允许我们把默认值赋给函数参数。

这种情况下,我们可以无需指明所有参数,便可调用函数。

默认参数总是由右到左添加。

●C++中,函数的参数可声明为常量,表示函数不可更改此变量。

●C++允许函数重载,也就是说,我们可以定义多个同名函数。

通过检查参数数目和类型编译器会准确地匹配函数调用和函数代码。

●C++支持两种新的函数类型,亦即友元函数和虚函数。

●C++标准库支持很多数学库函数,使用它们可以完成许多数学计算。

第五章类和对象

●类是结构体数据类型的扩展,一个类有多个成员变量和成员函数。

●默认情况下,类的成员是私有的,而结构体的成员是公用的。

●只有成员函数可以访问私有数据成员和私有函数。

但是类外可以访问公用成员。

●在C++中,类变量称为对象。

利用对象并使用点操作符,我们可以访问类的公用成员。

●我们可以在类内或类外定义成员函数。

成员函数和常规函数的区别在于,成员函数的头部有一个隶属标识符,以表明所属类。

●对象声明时,内存空间才会分配。

每一对象的成员变量空间单独分配,而成员函数的空间则统一分配。

●类的一个成员变量可声明为静态成员,一般用于维护整个类的通用值。

●静态成员变量必须定义于类外。

●静态成员函数可访问声明在同类的静态成员,调用静态成员函数时需要用到类名。

●C++允许我们使用对象数组。

●对象可用作函数自变量。

●友元函数不在友元声明类的作用域类,它可以访问累的所有私有数据。

●函数可以返回对象。

●如果成员函数不改变类内的任何数据,我们可以将其声明为常量成员函数,只要在函数原型中加上关键词const(声明和定义都要加)。

●我们也可以在函数内定义和使用类。

这种类称为局部类。

第六章构造函数和析构函数

●C++提供了一种称为构造函数的特殊成员函数,它能帮助对象在创建时完成初始化。

这一过程被称为对象的自动初始化。

●构造函数名和类名一致。

●构造函数通常用来初始化变量,以及分配内存。

●和常规函数一样,构造函数也可以被重载。

●当对象同时被创建和初始化时,复制构造函数被调用。

●我们可以声明一个常量对象,其数据值不能改变。

●C++还提供另一种成员函数,称为析构函数。

当对象不再需要时,会调用这种函数来销毁对象。

第七章运算符重载和类型转换

●运算符重载是C++的重要特性之一。

又被称为编译时多态性。

●使用重载特性,我们可以对两个用户自定义数据类型,比如说对象,执行相加的操作,使用的语法就和基本数据类型一样。

●我们可以重载几乎所有C++的运算符,下面几个是例外:

✧类成员访问符(.,.*)。

✧作用域解析符(:

)。

✧大小运算符(sizeof)。

✧条件运算符(?

)。

●运算符重载是通过一种称为运算符函数的特殊函数完成的,该函数定义了运算符的特定任务。

●运算符重载时有一些限制。

运算符函数必须是非静态的成员函数或者友元函数。

重载的运算符必须有至少一个用户自定义类型的操作数。

●编译器不支持用户自定义数据类型的自动类型转换,我们可以使用自定义的转换运算符函数,以实现自定义数据类型的自动类型转换。

●转换运算符函数应符合下列条件:

✧必须是类成员。

✧必须不指定返回值。

✧必须没有参数。

第八章继承:

类的扩展

●从旧类派生一个新类的机制被称为继承。

继承提供了可重用性的概念。

通过继承,C++的类可以被重用。

●派生类继承了基类的一部分或所有特性。

●只有一个基类的派生类被称为单继承。

●可从多个类继承,这被称为多继承。

●可从另一派生类继承类,这被称为多级继承。

●当某类的属性被多于一个类继承时,这被称为层次继承。

●不管是在公用模式还是私有模式,类的私有成员都不可被继承。

●以公用模式继承的保护成员仍为派生类的保护成员,而以私有模式继承的保护成员,则变成派生类的私有成员。

●友元函数和友元类的成员函数可直接访问私有和保护数据。

●派生类的成员函数只能直接访问保护和公用数据。

不过他们可通过基类的成员函数访问私有数据。

●多路继承可能引起祖父基类的继承成员的重复。

通过将共同的基类设为虚基类,我们可以避免祖父基类成员的重复。

●在多继承中,基类的创建次序与他们在派生类中的声明次序一致。

●类可包含其他类的对象。

这被称为包含关系或嵌套。

第16章标准C++的新特性

●在原有的C++语言规范基础上,标准C++委员会又添加了很多新特性。

●两个新的数据类型bool和wchar_t的添加,为C++增加了可用的数据类型

●bool类型可存布尔值,即true和false

●从字面上理解wchar_t类型可以存储一个十六位的字符

●引入了四种新的转换操作符吗,即static_cast、const_cast、reinterpret_cast和dynamic_cast

●static_cast操作符用于任何标准的数据类型转换

●const_cast操作符可能用于显示地更改对象的const和volatile属性

●使用reinterpret_cast操作符,我们可以把对象的数据类型转换成不同类型

●运行期对象的转换可由dynamic_cast操作符完成

●另一个新的操作符是typeid,他可以在运行期提供对象的信息

●构造函数可声明为mutable,我们可以使一组常量对象项或函数可变。

●标准C++允许我们在自己的程序中,定义自己的名称空间域,以克服特定的名称空间冲突的问题

●名称空间可嵌套

●使用using声明或using指令,可以访问名称空间中的成员

●对于某些操作符,标准C++提出了可以取而代之的操作符关键词

●在标准C++中,头文件都没有.h后缀,并且须在每个程序中使用using指令:

usingnamespacestd;

●有些旧风格的头文件在新的C++标准中被重新命名。

比如math.h文件更名为cmath

第十七章面向对象系统的开发

为了高效地打造高质量的软件,软件工程师已经动用了各种工具、方法和过程,以控制软件开发的流程。

方法提供了构建软件的思路,而工具则为这些方法提供了自动的或半自动的支持。

他们用于软件开发过程的各个阶段,即策划、分析、设计、开发和维护。

软件开发过程把方法和工具整合在了一起,使得软件系统的开发合理而又能及时完成。

软件开发过程还提供了使用方法和工具的指导,如何在每一阶段开发交付的产品,应用何种控制管理,以及使用什么样的里程标以评估项目的进展。

已经有一些软件开发的方案,每一个都使用不同的方法和工具。

特定方案的选用取决于应用的性质,使用的编程语言,以及所需的控制和交付产品。

一个成功系统的开发不仅只依赖于合适的方法和技术,也依赖于开发者迎着系统目标的努力。

成功的系统必须具备:

1.满足用户需求

2.易于被用户和操作员理解

3.易用

4.易于修改

5.可扩展

6.对于数据误用,有足够的安全机制

7.能令人满意地处理错误和异常

8.在预算内按计划交付

在本章中,我们将探讨一些软件开发中广泛使用的传统方案,然后再讨论一些目前的思想,这些思想可用于面向对象的软件开发。

●对于面向过程的开发,最广泛的经典的系统开发生命周期可由下面步骤组成:

◆问题定义

◆分析

◆设计

◆编码

◆测试

◆维护

●在面向对象方法中,系统可视为实体的集合,它们相互作用,以达到特定的目的

●在面向对象分析中,实体被称为对象。

面向对象分析(OOA)这种方法指的是,根据现实世界的对象,行为和相互作用,来确认软件的需求

●面向对象设计(OOD)将软件需求转换为对象规范,并派生出类的层次,对象即从该层次创建

●面向对象编程(OOP)指的是,借助于面向对象编程语言比如C++,使用对象实现程序

●面向对象分析(OOA)方案由下列步骤组成

第14章标准模板库介绍

●一组泛型类和函数的集合被称为标准模板类(STL)。

STL已成为C++标准库的一部分

●STL由三个主要部分组成:

容器、算法和迭代器。

●容器是能存放同类数据的对象,它们可分为三大类:

线性容器、关联式容器和衍生容器

●容器类定义了大量函数,可用来操作其中的数据

●算法是一些独立的函数,可用来对容器的数据执行操作,比如排序、搜索和合并等。

●迭代器就像指针一样,它们可用以访问容器的元素,从而在算法和容器间搭建了桥梁。

可以为特定的容器定义迭代器,它也用作算法的参数。

●某些算法使用函数对象来进行操作函数对象由某类创建,该类只包含重载的()操作符函数。

第13章异常处理

●异常是程序运行时可能遇到的特殊问题。

●异常有两种:

同步异常和异步异常。

C++提供的机制只处理同步异常。

●异常通常由try块中的错误语句引发。

语句发现错误并将其抛出,然后被catch语句捕捉到。

●catch语句定义了成块的语句,以适当地处理异常。

●当异常没有被捕捉到时,程序将退出。

●try块可能会直接抛出异常,或者调用了抛异常的函数。

不管抛出点在哪里,catch块都直接放置在try块后。

●我们可以放置多个catch块,以捕捉和处理try块抛出的多种类型的异常。

●有可能让某个catch语句捕捉到所有异常,只要将其参数变成省略号即可。

●我们也可以限定函数只抛出某些指定的异常,只要在函数定义后添加特定抛出语句即可。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1