1、析构函数在什么时候必须写成虚函数
存在基类指针指向堆上的子类对象上
2、构造函数能否写成虚函数
不能,虚函数指针是存在在对象的前四个字节上的,那么虚函数的前提就是必须有了对象才能看其它的,而构造函数就是用来产生对象的,所以没有对象是无法调用的。
3、内联函数能否写成虚函数
不能,内联函数编译时期在调用点展开,release版本下没有地址,而虚函数表中存的是函数的地址,所以不行
4、static函数能否写成虚函数
不行,因为它没有this指针,找不到对象的地址,static可以不依赖对象调用,连对象都没有怎么找到对象的前四个字节呢,所以不可以