第8章类基本特征.pptVIP

  • 1
  • 0
  • 约2.43千字
  • 约 24页
  • 2018-06-27 发布于福建
  • 举报
第8章类基本特征

第8章 类的基本特征 本章目标 掌握继承与继承的实现 掌握多态与多态的实现 §8.1 类的继承 本节主要内容: 继承的定义 继承的实现 派生类与基类的定义(子类与父类) 继承方式(public,protected,private) 派生类对象对基类成员的访问 作用域分解运算符∷ 派生类的构造函数与基类构造函数的关系 派生类的析构函数与基类析构函数的关系 8.1.1派生与继承 派生出其他类的类称为基类(父类),被派生的类称为派生类(子类)。 继承的语法格式如下: class 派生类名(子类名):继承方式 基类名 8.1.2多重继承 一个类也可以从多个基类派生而来,称为多重继承。 多重继承的语法格式如下: class 派生类名(子类名):继承方式 基类1,… 基类2 8.1.3类的继承方式 访问限定不仅在类内部存在,同样,对于派生类来说,访问限定也分为:public、protected、private三种类型。 公有继承 当类的继承方式为public时,基类的所有private成员在派生类中保持private,所有protected成员在派生类中保持protected,所有public成员在派生类中保持public 示例8.1.3请创建Student类,通过public继承创建Graduate类。 保护继承 当类的继承方式为保护继承时,基类所有的private成员在派生类中保持private,所有protected成员保持protected,但所有public成员变成了protected。 示例8.1.4 请先创建Student类,然后通过protected继承创建Graduate类。 私有继承 当类的继承方式为私有继承时,基类所有private成员在派生类中保持private,所有protected和public成员变成了private。 示例8.1.5请创建Student类,通过private继承创建Graduate类。 8.1.4构造函数和析构函数在基类与派生类中的调用 构造函数在基类与派生类中的调用 派生类中构造函数的调用顺序: 1.调用基类构造函数时,按照被继承时的声明顺序(从左到右) 2.调用派生类的构造函数 8.1.4构造函数和析构函数在基类与派生类中的调用 使用派生类构造函数时,应当注意以下问题: 1.派生类构造函数的定义中可以省略对基类构造函数的显示调用,但其前提是在基类中必须有默认的构造函数或者根本没有定义构造函数。 2.当基类的构造函数使用一个或多个参数时,派生类必须定义构造函数。 8.1.4构造函数和析构函数在基类与派生类中的调用 析构函数在基类与派生类中的调用 当对象被删除时,派生类的析构函数被调用。析构函数不能被继承。当派生类的析构函数被调用时,也将调用基类的析构函数。执行顺序是:先调用派生类的析构函数,再调用基类的析构函数,与构造函数的调用顺序相反 8.1.5多态 1.作用域分解运算符 作用域分解运算符∷,可以用来限定要访问的成员所在的类的名称,语法格式如下: 基类名∷成员名(成员属性或成员方法); 8.1.5多态 2.虚基类 虚基类定义格式: virtual 继承方式 基类名 §8.2 多态 本节主要内容: 静态多态的概念和实现 动态多态的概念和实现 静态多态和动态多态的区别 8.2.1多态的定义 多态,是指同一个动作可以表现不同的状态。 8.2.2静态联编与动态联编 函数特征是指:函数的参数类型、函数参数的个数、函数参数的排列顺序。 函数重载是指在一个程序中通过定义一些函数名相同,但函数特征不一样的成员函数的过程。 8.2.2静态联编与动态联编 联编: 当程序在编译或运行时,会根据函数特征的不同来决定调用哪个函数。这种将函数调用与相关函数代码相对应的动作称为联编。 联编分为静态联编和动态联编两种。 8.2.2静态联编与动态联编 静态联编是指,在编译阶段决定调用哪个相关的同名函数的过程。 动态联编是指,在编译阶段无法决定使用哪个相关的同名函数,只能在执行阶段依据不同的对象决定调用哪个类中相关同名函数的过程。 示例8.2.2请编写一个计算研究生学杂费用的程序。 8.2.3虚函数与动态联编 虚函数的一般格式: virtual 函数返回类型 函数名(参数列表){} 当类中的成员函数被声明为虚函数时,那么这个成员函数在派生类中将可能会有不同的函数体。当用指针或引用操作含有虚函数的类的对象时,对此类函数的调用将通过动态联编来实现,即在程序运行时进行函数的关联。 8.2.4纯虚函数与抽象类 纯虚函数 纯虚函数是一种没有函数体的函数。在纯虚函数的声明后面加上“=0”,表示该函数为纯虚函数。 一般格式如下: virtual 函数返回类型 函数名(参数列表)=

文档评论(0)

1亿VIP精品文档

相关文档