第六章单继承类 本章内容: ■6.1单继承类 ■6.2派生控制 ■6.3成员访问 ■6.4构造与析构 ■6.5父类和子类 ■6.6派生类的存储空间
第六章 单继承类 本章内容: 6.1单继承类 6.2派生控制 6.3成员访问 6.4构造与析构 6.5父类和子类 6.6派生类的存储空间
6.1单继承类 继承是C++类型演化的重要机制 常用来表示类属关系而不是构成关系 其实质是建造新的派生类,换句话说, 继承就是创建一个具有别的类的属性和 行为的新类的能力 c 通过继承,一个类可以只定义新类 只需定义原有类型没有的数据和函数成 员,但是具有原有类的属性和行为。使 得类之间具备了层次性
6.1单继承类 继承是C++类型演化的重要机制, 常用来表示类属关系而不是构成关系, 其实质是建造新的派生类,换句话说, 继承就是创建一个具有别的类的属性和 行为的新类的能力。 通过继承,一个类可以只定义新类 只需定义原有类型没有的数据和函数成 员,但是具有原有类的属性和行为。使 得类之间具备了层次性
6.1单继承类 例子:在一个系统中,需要对点进行操 作,点具有可见性,并具有x,y坐标特 性,点可以移动
6.1单继承类 例子:在一个系统中,需要对点进行操 作,点具有可见性,并具有x ,y坐标特 性,点可以移动
6.1单继承类 Location Point #x int -x:it y int y:in +Location(in x int=0,in y:int=0) +moveTo in x int,in y:int) -visibb +getX() Pont(nx:nny:n visible:nfalse) +getYO +setX(in x int) Point) +setY(in y int) H+GetX():int HGetY:imt Point +SetX(inx:int):void -visible:bool +SetY(iny:imt):void +Point(in x:int=0,in y:int=0,in v:bool =true) isVisible(:bool +Show):void +show):void +Hid:void +hide():void +moveTo(in x int,in y int):void
6.1单继承类
6.1单继承类 利用继承的优点: ■ 层次分明; ■ 可复用性好; 便于维护性
6.1单继承类 利用继承的优点: 层次分明; 可复用性好; 便于维护性
6.1单继承类 派生类:接受成员的新类, 如上例中的 Point类 基类:提供成员的类,如上例中的 Location类 新类可以接受一个类提供的数据和函数 成员,也可以接受多个类提供的数据和 函数成员,这两种继承形式分别称为单 继承和多继承
6.1单继承类 派生类:接受成员的新类,如上例中的 Point 类 基类:提供成员的类,如上例中的 Location 类 新类可以接受一个类提供的数据和函数 成员,也可以接受多个类提供的数据和 函数成员,这两种继承形式分别称为 单 继承 和多继承
6.1单继承类 Human Student 下eacher Primary Unergradu Master Scholar ate GraduateS Doctor StudentinC tudent umbent
6.1单继承类
6.1单继承类 单继承的声明形式: class派生类名称:访问控制符 基类名称 private: 成员说明列表; protected: 成员说明列表; public: 成员说明列表
6.1单继承类 单继承的声明形式: class 派生类名称:访问控制符 基类名称 { private: 成员说明列表; protected: 成员说明列表; public: 成员说明列表; }
6.1单继承类 说明: ■派生类名称是要定义的新类的名字; ■基类名称是指从哪个类派生出来的; ■访问控制符指当基类成员继承到派生类 时,基类成员在派生类中的访问权限,其 值可为private,public和protected(见 6.2);
6.1单继承类 说明: 派生类名称是要定义的新类的名字; 基类名称是指从哪个类派生出来的; 访问控制符指当基类成员继承到派生类 时,基类成员在派生类中的访问权限 ,其 值可为private,public和protected(见 6.2);
6.1单继承类 说明: 用class声明的类的派生控制缺省为 private,因此,声明class POINT:private LOCATION等价于声明class POINT: LOCATION. 派生类也可以用struct声明,用class和 struct声明的不同之处在于:用class声明的派 生控制和访问权限缺省为private,用struct声 明的派生控制和访问权限缺省为oublic。注 意,用union声明的类既不能作基类,也不能 作任何基类的派生类
6.1单继承类 说明: 用class声明的类的派生控制缺省为 private,因此,声明class POINT: private LOCATION等价于声明class POINT: LOCATION。 派生类也可以用struct声明,用class和 struct声明的不同之处在于:用class声明的派 生控制和访问权限缺省为private,用struct声 明的派生控制和访问权限缺省为public。注 意,用union声明的类既不能作基类,也不能 作任何基类的派生类