C++入门经典 笔记 (第十六章)使用继承扩展类

来源:互联网 发布:unix环境高级编程源码 编辑:程序博客网 时间:2024/06/06 09:03

C++的特点:封装、继承和多态,这一章,我们就讲继承,如果一个类在现有类的基础上添加了新功能,那么这个类就被称为从原来的类派生而来,而原来的类被称为新类的基类。

派生的语法

在C++中,要从一个类派生出另一个类,可在类声明中的类名后加上冒号,再指定类的访问控制(public、protected或private)以及基类。

例如:class  Mammal
{

//哺乳动物类的内容

}

class Dog : public  Mammal

{

//狗公有继承了哺乳动物类

}

前面提到那3个访问限定符:public、protected和private。只要有类的对象,函数就能访问该类的所有成员数据和成员函数。在公有继承的情况下,派生类可以访问基类的公有成员和受保护成员,但是不能访问私有成员。

构造函数和析构函数

在创建派生类的对象时,将调用多个构造函数。首先应该明白,派生类对象也是基类对象,因为派生类是通过基类继承而来的,所以,在创建派生类对象时,首先就调用基类构造函数,然后调用派生类构造函数完成对象的创建。在销毁派生类对象时,首先调用派生类的析构函数,然后调用基类的析构函数。这恰恰与创建对象时调用的顺序相反。

重写函数

如果派生类创建了一个返回类型和签名(包括函数名、参数列表和关键字)都与基类成员函数相同的函数,但是提供了新的实现,这就称为重写该函数。派生类可以重写基类的函数,重写函数意味着在派生类中修改基类函数的实现。创建派生类对象时,将调用正确的函数。

重载和重写的区别

重载成员函数时,创建了多个名称相同但签名不同的函数。而重写成员函数时,在派生类中创建了一个名称和签名都与基类函数相同但实现方法不同的函数。

调用基类方法

即使我们重写了基类的方法,仍然可以使用权限定名来调用它。为此,可指定基类名、冒号和方法名,如:已在派生类中重写了move()方法,而现在需调用基类的move()方法,就可以写Mammal::move();

0 0