1. 讲一下虚函数表,以及虚函数什么时候生成的?构造函数可以被定义为虚函数吗?答案:C++ 里带虚函数的类,编译器通常会为它生成一张虚函数表,表里存放的是该类各个虚函数最终对应的函数入口地址。对象实例里一般还会有一个隐藏的虚表指针,用来在运行时找到这张表。通过基类指针或引用调用虚函数时,程序会先取出对象里的虚表指针,再间接找到真正要执行的函数,这就是运行时多态的基础。虚函数表是在编译期由编译器根据类定义生成的,不是运行时动态“创建”的。真正到运行时参与的是对象里的虚表指针初始化过程。对象构造时,编译器会在不同构造阶段把 vptr 指向当前构造层级对应的虚表,所以构造和析构期间的虚函数行为要特别...