类的继承定义: 类的继承,是新的类从已有类那里得到已有的特性。或从已有类产生新类的过程就是类的派生。原有的类称为基类或父类,产生的新类称为派生类或子类。
派生与继承,是同一种意义两种称谓。 isA 的关系。
派生类的组成 派生类中的成员,包含两大部分,一类是从基类继承过来的,一类是自己增加的成员。从基类继承过来的表现其共性,而新增的成员体现了其个性。
一个派生类可以同时有多个基类,这种情况称为多重继承,派生类只有一个基类,称为单继承。
1、需要被外界访问的成员直接设置为public 2、只能在当前类中访问的成员设置为private 3、只能在当前类和子类中访问的成员设置为protected
类型兼容规则中所指的替代包括以下情况:
子类对象可以当作父类对象使用 子类对象可以直接赋值给父类对象 子类对象可以直接初始化父类对象 父类指针可以直接指向子类对象 父类引用可以直接引用子类对象 在替代之后,派生类对象就可以作为基类的对象使用,但是只能使用从基类继承的成员 子类就是特殊的父类 (base *p = &child;)
在子类对象构造时,需要调用父类构造函数对其继承得来的成员进行初始化. 在子类对象析构时,需要调用父类析构函数对其继承得来的成员进行清理.
1、子类对象在创建时会首先调用父类的构造函数 2、父类构造函数执行结束后,执行子类的构造函数 3、当父类的构造函数有参数时,需要在子类的初始化列表中显示调用 4、析构函数调用的先后顺序与构造函数相反
先构造父类,再构造成员变量、最后构造自己 先析构自己,在析构成员变量、最后析构父类
1、当子类成员变量与父类成员变量同名时 2、子类依然从父类继承同名成员 3、在子类中通过作用域分辨符::进行同名成员区分(在派生类中使用基类的同名成员,显式地使用类名限定符 4、同名成员存储在内存中的不同位置
¬ 基类定义的静态成员,将被所有派生类共享 ¬ 根据静态成员自身的访问特性和派生类的继承方式,在类层次体系中具有不同的访问性质(遵守派生类的访问控制) ¬ 派生类中访问静态成员,用以下形式显式说明: 类名 :: 成员 或通过对象访问 对象名.成员