77范文网 - 专业文章范例文档资料分享平台

面向对象程序设计总复习资料(2013夏)

来源:网络收集 时间:2018-11-25 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

面向对象程序设计总复习(2013_夏)

复习之一、对照书本(或上课课件)上,搞懂有关概念

【第0-1章】

1. 面向对象程序设计是不同于传统程序设计的一种新的程序设计范型。它对降低软件的复杂性,改善其重用性和维护性,提高软件的生产效率,有着十分重要的意义。因此面向对象的程序设计被认为是程序设计方法学的一场实质性的革命(在导学中)。

2. 面向对象(O-O)程序设计是一种新的程序设计范型。这种范型的主要特征是: 程序=对象+消息

面向对象程序的主要结构特点是:

第一,程序一般由类的定义和类的使用两部分组成;

第二,程序中的一切操作都是通过向对象发送消息来实现的,对象接收到后,启动有关方法完成相应操作。

3. 现实世界中,对象一般可以表示为:属性+行为 现实世界中的对象,具有以下特性:

(1) 每一个必须有一个名字以区别于其他对象; (2) 用属性来描述对象的某些特征;

(3) 有一组操作,每组操作决定对象的一种行为; (4) 对象的行为可以分为两类:一类是作用于自身的行为,另一类是作用于其他对象的行为。 4. 在现实世界中,类是一组具有相同属性和行为的对象的抽象。 类与对象的关系是抽象和具体的关系。

在C++面向对象的程序设计中,把类中的属性称为数据(数据成员),类中的操作是用函数(函数成员)来实现的。

5. 面向对象程序设计的基本特征:抽象性、封装性、继承性和多态性 (1). 抽象是通过特定的实例(对象)抽取共同性质后形成概念的过程。

(2). 在面向对象程序设计中,封装是指把数据和实现操作的代码集中起来放在对象内部,并尽可能隐蔽对象的内部细节。

(3). 继承机制允许派生类继承基类的数据和操作(即数据成员和成员函数),也就是说,允许派生类使用基类的数据和操作。同时派生类还可以增加新的操作和数据。 从继承源上分,继承分为单继承和多继承。

(4). 面向对象系统的多态性是指不同的对象收到相同的消息时产生多种不同的行为方式。如可以有同名函数

【第2章】

6. 简单的C++程序

例2.1 计算两个整数之和sum.cpp #include //系统头文件

这两行也可用一行代替:#include using namespace std;

int main( ) //主函数

{ int x , y, sum; // 定义三个整型变量

面向对象C++程序设计总复习 第1页 共22页

cout<<\输入二个数:\ //界面:提示用户输入二个数 cin>>x; //从键盘输入变量x的值 cin>>y; //从键盘输入变量y的值 sum=x+y;

cout<<“x+y=\\\n'; //输出

return 0; }

C++新行(回车换行) '\\n’ 或endl (ENDL的小写) 新的输入/输出: 老:scanf

新:cin是标准输入流,在程序中用于代表标准输入设备,即键盘。运算符“>>”表示向右 老:printf

新:cout是标准输出流,在程序中用于代表标准输出设备,即屏幕。运算符“<<”表示向左 使用cin或cout进行I/O操作时,在程序头中头文件#include 7. 函数原型(函数声明)(重点) 返回值类型 函数名(参数表); 例2.7

int add(int a, int b); int add(int, int);

使用在前,定义在后,要先声明。

若定义在前,使用在后,就可不必声明。

8. 函数重载:C++中,只要函数的參数的类型不同,或者參数个数不同,或者二兼有之,几个函数可以用相同的函数名。称为函数重载 9.C语言用函数malloc()和free()动态分配内存和释放动态分配的内存。C++使用运算符new和delete能更好、更简单地进行内存的分配和释放。 10. 引用(重点)

引用可为变量起别名,它主要用作函数参数以及函数的返回类型。引用有三种:(1)有变量的引用、(2)参数引用和(3)返回值引用。 11.1、& 取地址运算符 取西瓜皮

2、* 指针运算符(间接访问运算符)挖西瓜馕

【第3章】

12. C++中说明(类的定义)类的一般形式为 clsaa 类名 {

[ private:] (可省略)

私有段数据成员和成员函数 protected:

保护段数据成员和成员函数 public:

公有段数据成员和成员函数 };

面向对象C++程序设计总复习 第2页 共22页

成员函数的定义方式:

第一种方式是在类定义中只给出成员函数的原形,而成员函数体在类的外部定义。 第二种方式是将成员函数定义在类的内部,即定义为内置函数。 (1) 隐式定义 (2) 显式定义

13.类对象中成员的引用(使用、访问都是同一个意思)不论是数据成员,还是成员函数,只要是公有的,就可以被外部函数直接引用,引用的一般格式是:

对象名. 数据成员名 和 对象名. 成员函数名(实参表) 外部函数不能引用对象的私有成员 总之:类成员的访问属性:

类的公有成员不但可以被类中成员函数访问,还可以在类的外部通过类的对象进行访问。类的私有成员只能被类中成员函数访问,不能在类的外部通过类的对象进行访问。 14. 构造函数的特点:

(1)构造函数的名字必须与类名相同,否则编译程序将把它当作一般的成员函数来处理。 (2)构造函数没有返回值,在声明和定义构造函数时,是不能说明它的类型的的,甚至说明为void类型也不行。

(3)构造函数也是成员函数,与普通的成员函数一样,构造函数的函数体可写在类体内,也可写在类体外。

(4)一般不提倡在构造函数中加入与初始化无关的内容

(5)构造函数一般声明为公有成员。它不需要用户来调用,而是在建立对象时自动执行的。 (6)在实际应用中,通常需要给每个类定义构造函数。如果没有给类定义构造函数,则编译系统自动地生成一个缺省的构造函数。

complex::complex( ) { } //不能带任何参数。 (7) 定义构造函数时,也可以是不带参数的。

15. C++允许重载构造函数,这些构造函数之间名字相同,而以它们所带参数的个类或类型的不同而区分。带默认参数的构造函数。

16.对象的赋值和拷贝构造函数,其作用是,在建立新对象时,使用一个已经存在的对象去初始化这个新对象。piont p2(p1);

17. 析构函数也是特殊成员函数,用于释放对象。

(1) 析构函数与构造函数名字相同,但它前面必须加一个波浪号(~)。

(2) 析构函数没有参数,也没有返回值,而且不能重载,因此在一个类中只能有一个析构函数。 (3) 当撤消对象时,编译系统会自动地调用析构函数。 18.可以用类定义对象数组: 类名 数组名[元素个数];

19.当需要时,可以用类定义对象指针。对象指针就是用于存放对象地址的变量 类名 *对象指针名; 20. 类的封装性,使类只能通过成员函数来访问私有成员。这是好事但也有一定的限制太死的感觉。能否开个小孔口,必要时作个破例,使外界函数、别的类的个别成员函数、甚致别的类的所有成员函数可访问某个类的私有成员。这个方法称为友元。 21. 友元包括友元函数和友元类

面向对象C++程序设计总复习 第3页 共22页

(1) 友元函数分为:非成员函数作友元和别的类的成员函数作友元

(2) 友元类: 在类定义时,在类内说明一个类(该类前面已定义),前加上 friend表示该整个的一个类是本类的友元类。友元类的所有成员函数可以访问它自己类私有成员又可本类的私有成员。

【第4章】

22. 派生类的定义 基类:

class 基类名 {

类的内容

};

声明派生类:

class 派生类名 : 继承方式 基类名 {

//派生类新增的数据成员和函数成员

};

继承方式可为公有继承(用public)、私有继承(用private或缺省)和保护继承(用protected) 23. 基类成员在派生类中的访问属性(重点)基类中的成员 在公有派生类中的访问属性 在私有派生类中的访问属性 在保护派生类中的访问属性 私有成员 不可直接访问 不可直接访问 不可直接访问 公有成员 公有 私有 保护 保护成员 保护 私有 保护 24. 派生类对基类成员的访问规则(重点) (1)私有继承的访问规则 基类中的成员 访问方式 内部访问 对象访问 私有成员 不可访问 不可访问 私有成员 内部访问 对象访问 不可访问 不可访问 私有成员 内部访问 对象访问 不可访问 不可访问 公有成员 可访问 不可访问 公有成员 可访问 可访问 公有成员 可访问 不可访问 保护成员 可访问 不可访问 保护成员 可访问 不可访问 保护成员 可访问 不可访问 (2) 公有继承的访问规则 基类中的成员 访问方式 (3) 保护继承的访问规则 基类中的成员 访问方式 25. 派生类的构造函数和析构函数 (1) 派生类的构造函数和析构函数执行顺序

无论何中派生,当创建派生类对象时,首先执行基类的构造函数,随后再执行派生类的构造函数;当撤消派生类对象时,则先执行派生类的析构函数,随后再执行基类的析构函数。 (2). 派生类的构造函数和析构函数的构造规则

面向对象C++程序设计总复习 第4页 共22页

简单的派生类的构造函数一般格式为:

派生类名(参数总表):基类名(参数表) {

派生类新增成员的初始化语句

}

其中基类构造函数参数,来源于派生类的构造函数的参数总表,也可以用常数值。 26.从多个类,派生出一个类,也即一个类从多个基类继承称为多重继承。 多重继承的声明格式如下:

class 派生类名: 继承方式1 基类名1, ... ,继承方式n 基类名n

{

派生类新增的数据成员和成员函数

};

派生类继承了基类1 到 基类n的所有数据成员和函数成员,其访问属性规则与单继承情况一样,多继承可看成单一继承的扩展。

27. 如果一个派生类有多个直接基类,而这些直接基类又有一个相同的基类,则在最低层的派生类中会保留这个间接的共同基类数据成员的多份同名成员。在访问这些同名成员时会产生二义性,才考虑虚基类,虚基类在派生类中声明的形式:

class 派生类名: virtual 继承方式 基类名{

// ............ };

经过这样的声明后,当基类通过多条派生路径被一个派生类继承时,该派生类只继承该基类一次,也就是说,基类成员无“副本”

【第5章】

28. 编译时的多态性与运行时的多态性 静态联编(前期联编) 静态联编要求在程序编译时就知道调用哪个函数,就决定如何实现某一动作。 动态联编(后期联编、滞后联编)

一直要到程序运行时才能确定调用哪个函数。系统在运行时才动态完成的联编。

静态联编支持的多态性称为编译时多态性,也称静态多态性。在C++中,编译时多态性是通过函数重载和运算符重载实现的。

动态联编支持的多态性称为运行时多态性,也称动态多态性。在C++中,运行时多态性是通过继承和虚函数来实现的。

29.运算符重载:C++除了可以对函数重载外,还可以对大多数运算符实施重载。

外部普通函数 类的友元函数 是类的成员函数 成员运算符函数定义的语法形式 成员运算符函数的原型在类的内部声明格式为: class X{ //...

返回类型 operator 运算符(形参表);

//... };

30. 虚函数的引入,基类的指针可以指向它的公有派生类的对象,用“指针”才有虚函数的问题。

面向对象C++程序设计总复习 第5页 共22页

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库面向对象程序设计总复习资料(2013夏)在线全文阅读。

面向对象程序设计总复习资料(2013夏).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/309779.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: