1. 虚基类的作用
为了解决多继承中菱形继承所产生的同名成员不唯一性问题。
B继承A,C继承A,D继承B和C,则A中的成员在D中有两份同名的。
解决方法:
B虚继承A,C虚继承A,D继承B和C,则A中的成员在D中只有一份。其中,A被称为虚基类。
2. 解释C++中的多态
即同一事物在不同场景下的多种形态。包括静态多态和动态多态。
静态多态:函数重载,通过对不同参数列表区分不同的同名函数,在编译阶段就已经区分应该执行哪种行为。
动态多态:虚函数,以virtual关键字注明的成员函数,表示该函数可以在派生类中被重写。之后就可以通过基类指针指向派生类,来调用派生类中重写的虚函数。
3. vector和list的区别
vector以数组方式实现,存储空间连续,便于随机存取,不适合插入删除操作较多的场景。
list以双向链表方式实现,适合经常插入删除的场景,不适用随机存取操作较多的场景。