C++面向对象 继承与多态

第十三章 多态与继承性

 

13.1继承与派生

1.    继承与派生的语法格式:

Class 派生类名:继承方法 基类类名

{

//新增的属性和行为 基类成员的覆盖或者重载

}

2.    继承方法有公开继承、保护继承和私有继承。三种继承方式分别用public, protected和private.无论哪种方式,派生类都全部继承了基类的一切成员(基类的构造函数、拷贝构造函数和析构函数除外)

3.    派生类型的访问属性:基类的私有成员在派生类当中是存在的,但是被隔离起来,不能直接访问。如果要访问他们需要通过基类的成员函数。

4.    派生类的对象可以初始化(拷贝构造)基类的对象、初始化基类的引用、赋值给基类的对象。派生类对象的地址可以初始化基类的指针变量,可以赋值给基类的指针变量。

5.    虚函数:使用保留字virtual可以将成员函数声明为虚函数。

6.    友元函数不能是虚函数!

7.    可能作为基类的类应该定义他的析构函数为虚函数(比较好)

8.    纯虚函数(在函数首部之后,写下记号“=0”之后虚函数就是纯虚函数)

9.    只要一个类含有纯虚函数,那这个类就是抽象类。抽象类的唯一作用就是被继承。派生类当中可以覆盖定义基类的纯虚函数。抽象类的派生类也可能是抽象类,只要它当中还有纯虚函数没有被覆盖定义。当一个类中没有纯虚函数的时候,这个类便成为具体类。

10.  不能创建抽象类的对象;但是可以定义抽象类的指针变量指向由其派生的具体类的对象;可以声明抽象类的引用,但是声明引用时必须用其派生类的具体类的对象进行初始化。

11.  关于虚函数的说明:

(1)     只有类的成员函数才能被声明为虚函数。

(2)     纯虚函数没有函数体。抽象类就是被继承的。不能创建抽象类的对象,但可以定义抽象类的指针变量、声明抽象类的引用。

(3)     构造函数、拷贝构造函数不能是虚函数。因为虚函数是认具体对象的,在执行构造函数的之后所处理的对象还没有构造完成,对象还没有成型。

(4)     静态函数也不能是虚函数。因为静态函数不会默认练习某个对象。

 

猜你喜欢

转载自www.cnblogs.com/joelovescoding/p/11829664.html