第1章 面向对象程序设计
Visual C++(www.cppentry.com)不仅仅是一个编译器,它还是一个应用程序的开发环境,使用它可以开发出专业级的Windows应用程序。Visual C++(www.cppentry.com)的基础为C++(www.cppentry.com)语言,C++(www.cppentry.com)中的继承、封装和派生的思想在Visual C++(www.cppentry.com)中都得到了很好的应用,因此,本章将首先对C++(www.cppentry.com)中面向对象程序设计的相关知识进行介绍。读者应熟练掌握本章的内容,以便为后续章节的学习打下良好的基础。
类和对象
静态成员和友元函数
继承和派生
虚函数和多态
1.1 面向对象程序设计基础
1.1.1 面向对象程序设计与C++(www.cppentry.com)语言
早期的程序设计方法一般都是面向过程的(Procedure-oriented Programming,POP),在这种设计方法下,编程(www.cppentry.com)人员的主要工作是把一个复杂任务分解成若干个过程,然后再针对这些过程进行程序编写,其中每个过程都基于某些特定的算法。对于C语言来讲,就是编写一个个函数,每个函数的数据和程序代码是分离的,当修改某段程序时,所有与之相关的部分都需要做相应的调整。随着任务规模的不断扩大,程序变得很容易出错,而且越来越难以管理。这种面向过程的程序设计语言除C语言外,还包括Pascal语言、Basic语言等。
后来"面向对象"一词席卷了整个软件界。所谓面向对象的程序设计(Object-oriented Programming,OOP)其实就是一种基于结构分析的、以数据为中心的程序设计方法。它的主要思想是将数据及处理这些数据的操作都封装(Encapsulation)到一个称为类(Class)的数据结构中,使用这个类时,只需要定义一个类的变量即可,这个变量叫做对象(Object)。通过调用对象的数据成员来完成对类的使用。在这种方法下,编程(www.cppentry.com)人员不需要考虑"如何做",而只需指定"做什么"即可。这种编程(www.cppentry.com)思想较好地适应了现实世界中的问题,因此得到了广泛的应用。
面向对象的程序设计方法为编程(www.cppentry.com)人员提出了一些全新的概念--类、对象、封装、继承、多态等,下面将首先对类和对象的含义进行说明。
在面向对象的程序设计方法中,类(Class)是对自然现象或实体的程序语言描述,对象(Object)是对类的实例化。
如对于普通意义上的"笔",类可以泛指某一批外形、价格、生产厂家、出厂日期完全一致的笔,用这个类声明的一个对象是这些笔中的一支实实在在的笔,而且单纯从这一支笔中可以得到这样的认识--它具有一定的属性(外形、价格、颜色、长短)、行为(写字、绘画),与"笔"这个类具有相同的属性和行为。
如果程序中需要对笔进行操作,编程(www.cppentry.com)人员就可以先定义"笔"的类。对于"笔"的属性,可以用类的成员变量来实现,这些变量中有些可以让外界直接使用,那就把这些变量定义成公有变量,另一些不想让外界直接使用的变量可以定义成私有变量。而"笔"的行为则可以用这个对象的方法来描述,例如设定笔的颜色、读取笔的价格等操作都可以通过调用类的方法来实现。
对象是一个非常重要却又容易与"类"混淆的概念。对象是类的实例。仍以笔为例进行说明--笔、钢笔、铅笔、毛笔都是指一个特定的类型,而不是指特定的某一支笔,这一点要非常明确。要想使用这些类,必须把具体的类实例化,只有实例化了,才能通过实例来使用它的属性和方法。
这就像在生活中的常识一样--任何一种笔都有价格属性和一般用途,但如果不指定特定的一支笔,就不能说明价格的具体值,而且我们也无法使用代表抽象概念的笔来进行写作和绘画。一个类可以被多次实例化,也就是可以定义成多个对象。例如一个人可以有多支笔,每支笔作为笔对象而独立存在,各支笔相互之间不存在必然的关系。
【责任编辑:
云霞 TEL:(010)68476606】