面向对象编程:抽象与实例——人

需积分: 9 8 下载量 172 浏览量 更新于2024-08-19 收藏 3.65MB PPT 举报
"抽象实例——人-C++东南大学何洁月课件(总)" 这篇资料主要探讨了在C++编程中使用抽象的概念,通过“人”这个实例来讲解数据抽象和代码抽象。数据抽象是指对对象的特征进行简化表示,这里的“人”对象包括了如`char *name`(姓名)、`char *sex`(性别)、`int age`(年龄)和`int id`(身份证号)等属性。这些属性构成了人这个类的基础数据结构。 代码抽象则关注对象的行为,从生物属性和社会属性两个角度来定义“人”的行为。生物属性包括`GetCloth()`(穿衣)、`Eat()`(吃东西)、`Step()`(行走)等,这些方法代表了人的基本生理活动。社会属性则涉及`Work()`(工作)、`Promote()`(晋升)等,反映了人在社会生活中的角色和活动。值得注意的是,根据不同的需求,同一个问题可能会有不同层次的抽象,即抽象的成员可能会有所不同。 资料中还提到了一些C语言的编程元素,如C程序的结构,包括分支结构和循环结构。分支结构如`if...else`语句,用于根据条件执行不同的代码块;循环结构如`for`、`while`等,用于重复执行某段代码。这部分内容通常来自《计算机程序设计基础》的相应章节,例如P58图3.3和图3.4所示的例子。 此外,资料还介绍了结构体(`struct`)的使用,如`struct aircraft`,用于定义具有翼幅、乘客数量等属性的飞机对象。结构体可以包含无名联合(`union`),在这里可能是为了节省存储空间,因为不同类型的飞机可能只需要使用其中一部分属性。同时,资料提到了函数的参数传递方式,例如引用(`&`)可以实现在函数内部改变调用者变量的值,与值传递形成对比。 面向对象编程(OOP)是另一个重点,它认为世界由一系列相互作用的对象组成。在C++中,类(`class`)是实现OOP的主要工具,它封装了数据和操作这些数据的方法。类的成员函数可以是内联的(使用`inline`关键字),以提高效率。此外,构造函数(`constructor`)用于在创建对象时初始化成员变量,析构函数(`destructor`)则在对象销毁前执行特定操作,确保资源的有效管理。通过继承和派生,可以构建复杂的类层次结构,但这些在当前资料中没有详细展开。 这份资料提供了C++中数据抽象、代码抽象、结构体、函数、面向对象编程的基本概念和实践,以及在实际问题中如何应用这些概念。通过实例“人”,强调了抽象在解决问题时的重要性,以及如何根据需求调整抽象的粒度。