1、什么是继承?
答:继承是从已存在的类中派生出新的类,而这个新类继承了父类(基类)所有的特征(包括成员方法)。继承是面向对象复用的重要手段。通过继承定义一个类,继承是类型之间的关系建模,共享公有的东西,实现各自本质不同的东西。
2、访问限定符和继承关系
答:在类中,protected、private和public是一个类当中的类成员访问限定符,它们决定了成员是否能在类外访问(私有成员和公有成员),而在继承中,这些访问限定符又扮演了另外一个角色,决定了继承关系:
在上面的这段代码反映了继承的特点,及子类(派生类)可以从基类中继承而来的成员(除了基类中的私有成员除外),由于这是公有继承(pubilc)所以在类外我们可以访问_pub成员,而只能在类内访问_pro成员,如果是protected继承和private继承,则_pro和_pub成员只能在子类中通过成员方法以及友元函数来进行访问。
3、继承与转换(只能在public的继承当中使用):
答:继承与转换主要有以下四点:
a、可以通过子类成员给父类成员进行赋值。
b、不能通过父类成员给子类成员进行赋值。
c、父类的指针和引用可以指向子类对象。
d、子类的指针和引用不能指向父类对象。
理解:权限可以缩小但是不能够放大。子类在继承了父类成员变量的同时可能还会自己定义一些成员,所以子类的内存空间是大于父类的内存空间的,当用一个内存空间大的对象给一个内存空间小的对象赋值时会发生错误,而可以用字节数少的类型给字节数多的类型赋值。
4、关于继承体系中的作用域:
a:子类和父类具有相互独立的作用域。
b:如果子类和父类出现了同名的成员变量或成员方法,则在子类中会将与父类同名的成员或者方法进行自动隐藏(在成员方法中,只要是同名,无论函数参数还是返回值是否相同,子类都会进行隐藏)