Visual C++大学教程 教学课件 作者 冯博琴 第4章 面向对象程序设计.ppt

Visual C++大学教程 教学课件 作者 冯博琴 第4章 面向对象程序设计.ppt

ID:50307533

大小:843.00 KB

页数:32页

时间:2020-03-07

Visual C++大学教程 教学课件 作者 冯博琴 第4章 面向对象程序设计.ppt_第1页
Visual C++大学教程 教学课件 作者 冯博琴 第4章 面向对象程序设计.ppt_第2页
Visual C++大学教程 教学课件 作者 冯博琴 第4章 面向对象程序设计.ppt_第3页
Visual C++大学教程 教学课件 作者 冯博琴 第4章 面向对象程序设计.ppt_第4页
Visual C++大学教程 教学课件 作者 冯博琴 第4章 面向对象程序设计.ppt_第5页
资源描述:

《Visual C++大学教程 教学课件 作者 冯博琴 第4章 面向对象程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第4章面向对象程序设计4.1类的定义和实例化面向对象的程序设计方法则是把数据及处理这些数据的函数封装在一个类中,而使用类的实例则称为对象。在面向对象程序设计中,将事物的特征和行为组织在一起,便形成了类。在类中,事物的特征被描述为数据成员,行为被描述为方法。与面向过程相比,面向对象程序设计具有以下优点:第一,程序的可维护性好,易于阅读和理解;第二,程序的易修改性好,可以很容易地修改、添加或删除程序的属性;第三,重用性好,可以将类和对象保存起来,随时应用到程序中,无需做什么修改。1.类的声明类是进行封装和数据隐藏的工具,通过类把逻

2、辑上相关的实体联系起来,并可从外部访问这些实体。声明一个类,需要使用关键字class,其后是类名,类名后是一个“{”,而后是数据成员和方法,结尾是“}”和分号。2.对象的声明和实例化对象是类的实例化。在声明一个类时,并没有为其分配内存空间,只有在实例化一个对象时,才为对象分配空间。声明一个对象和声明一个整型变量类似。在定义一个类的对象之后,就可以通过对象访问类的成员了。在对象之后使用“.”运算符访问类成员。4.2类成员的保护在类的声明时,类的成员(数据和方法)具有安全级别。常用的安全级别有public、private、prot

3、ected。默认情况下,类的成员为私有的(private),私有成员只能在类本身的方法内访问,类的对象不能够访问私有成员,并且私有成员不能够被派生类继承。公有成员(public)能够被类的所有对象访问,能够被派生类继承。保护成员(protected)不能够被对象访问,但能够被派生类继承。在类外部不能访问私有成员和保护成员,只能访问公有成员。4.3构造函数的定义及调用为了进行初始化工作,C++提供了一个特殊的成员函数—构造函数(constructor)。构造函数是一个与类名相同的方法,可以根据需要设置参数,但不具有返回值,甚至空

4、值也不行。如果在声明类时,没有提供构造函数,编译器会提供一个默认的构造函数,默认构造函数没有参数,不进行任何操作。在开发程序时,用户可以自己定义一个默认的构造函数,只要构造函数没有任何参数就可以了。编译器除了提供默认的构造函数外,还提供了默认的复制构造函数。在一个函数中,按值传递一个对象或是将对象作为函数的返回值,均会调用类的复制构造函数。所有的复制构造函数均只有一个参数,即该类的对象的引用。因为复制构造函数的目的是生成一个对象的拷贝,所以参数是类的对象的常量引用,即在复制构造函数中不允许修改参数。当按值传递一个对象作为函数参

5、数或者函数返回一个对象时,编译器将调用复制构造函数重新构造一个对象。总的来说,构造函数的定义和其他方法的定义相同,但需要注意以下几点。(1)构造函数不能指定返回类型和返回值。(2)一个类可以有多个构造函数,如果没有定义构造函数,编译器会自动为类创建一个默认的构造函数。(3)构造函数可以没有参数,也可以有多个参数,多个构造函数之间就是靠参数的个数和类型来区分的。4.4析构函数的定义及调用过程分析析构函数是与构造函数是相对的,它是在对象被撤销后清除并释放所分配的内存。析构函数与类同名,只是前面有一个“~”号。析构函数没有返回值,也

6、没有参数。如果对象是在栈中被创建的,那么在对象失去作用域时,系统会自动调用其析构函数来释放对象占用的内存。4.5类的继承4.5.1单继承面向对象的最大特点是实现了继承。开发人员能够根据已有类派生一个新类,新类继承了父类所有公有(public)和受保护(protected)的数据成员和方法。类的继承是指派生类可以全部或者部分继承基类的特征,同时加入所需要的新特征和功能。在派生一个新类时,使用class关键字,其后是类名称、冒号、访问限定符(public、private、protected)、基类名称。在C++中,共有3种访问限定

7、符,如下。访问限定符public访问限定符protected访问限定符private4.5.2多继承多继承是指派生类有多个基类,这个派生类继承了多个特性,这些特性来自不相关的基类。多继承的语法为:class类名称:访问限定符1基类1名称,访问限定符2基类2名称,……在多继承中,派生类继承了多个基类的特征,每个基类都由一个访问限定符来控制其成员在派生类的访问权限。多继承使程序重用性得到更大的发挥,可以通过已有的多个不同基类来生成需要的新类。4.5.3虚继承采用多重继承会带来许多问题。用virtual关键字实现的继承叫虚继承,当进

8、行虚继承时,编译器会通过指针对其进行处理,使其只能产生一个基类子对象,这样在编译器就不会产生错误。虚继承的语法为:class类名称:virtual访问限定符基类名称4.6为类定义内联方法在C++中,可以编写像内联函数一样的内联方法,只需要在方法返回值前添加inline关键字。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。