1.什么是单继承?
从一个基类派生的继承称为单继承。单继承的标准定义格式如下:
class <子类名>:<继承方式> <父类名>
{
<子类新定义成员>
};
其中“:”是继承符号,左边是派生类,右边是源头父类,<子类名>是派生出来的子类名。<继承方式>有public , private 和protected三种。
2.public 继承有何特点?
public 继承父类的子类在类内或类外都可以访问父类所有的公有成员和成员函数,但是都不能访问私有成员和成员函数,可以在子类内访问该父类的保护成员和成员函数。
2. private 继承有何特点?
父类的公有成员和保护成员都作为子类的私有成员,并且不能被子类对象所访问。在子类内不能访问父类的私有成员和成员函数。
4.protected 继承有何特点?
父类的所有公有成员和保护成员都成为子类的保护成员并且只能被他的子类成员函数或友元函数访问,父类的私有成员仍是私有的,子类的对象不可以直接访问父类的成员。(父类的公有或保护成员可以在子类内访问,但私有成员不可以在子类内访问。
5.子类和父类的关系有何特点?
·子类是父类的具体化
·子类是父类定义的延续
·子类是父类的组合
6. 子类的构造函数按怎样的顺序构造?
父类的构造函数先调用,子类的构造函数后调用。如果是多重继承,先调用最开始的父类,直到最后调用现在的子类。
7.子类的析构函数按什么顺序调用?
与构造函数的顺序相反,后构造的先析构,先构造的后析构。
8.多继承子类的构造函数初始化列表按什么顺序调用?
首先调用父类构造函数,调用顺序按照它们被继承时声明的顺序(从左向右),如果子类中的数据成员存在父类对象,那么按照父类对象成员的定义的先后顺序调用对应的构造函数,最后调用子类的构造函数。
9.在什么情况下使用虚继承?
多个子类继承自同一个父类时将继承方式指定为私有继承,此时的父类称为虚基类。
10.为什么要使用虚继承?
解决多继承时可能发生对同一父类继承多次而产生的二义性问题,为最远的子类提供唯一的父类成员,而不重复产生多次复制。