1、虽然一个类的析构函数是虚函数,但是其调用操作员静态的决议出来的。
2、构造函数的函数本体必须条件式的测试传进来的参数,然后决定调用或不调用相关的虚基类构造函数。由最底层的派生类进行虚基类的构造函数的调用,这种机制会压制中间层级类中构造函数对虚基类构造函数的调用。(菱形继承,最底层的派生类会调用最上层虚基类的构造函数,而在调用中间两个基类构造时,将参数设置为flase,这样中间两个基类的构造函数不再调用最上层虚基类的构造函数。)
3、在一个类的构造函数中调用一个虚函数,其函数实例应该是在这个类中有作用的那个。
4、如果在构造函数中调用虚函数,那么这个虚函数应该是以静态的方式决议,根本一点的解决办法:在执行一个构造函数时,必须限制一组虚函数的候选名单,这个候选名单由虚函数指针控制。
5、虚函数指针在基类构造函数调用操作之后,但是在程序员供应的代码或是成员列表初始化中成员初始化操作之前。
6、构造函数的执行算法通常如下:
1)在派生类构造函数中,所有虚基类以及上一层基类的构造函数被调用。
2)上述完成之后,对象的虚函数指针被初始化,指向相关的虚函数表。
3)如果有成员列表初始化,在构造函数体内展开,这必须在虚函数指针设定之后才做,以免有一个虚函数被调用。