場景:
class A
{
int i;
A() { memset(this, 0, sizof(A))}; // 初始化
virtual ~A() {}
}
main()
{
A* a = new A;
delete a; //程式會當機。
}
總結:
為什麼會當機?
A() { memset(this, 0, sizof(A))}; // 初始化
會把虛指針置空, 無法正确 的調用析構函數。重而會生成core.
虛指針、 虛表:
https://blog.csdn.net/qq_34484472/article/details/78232465
Java沒有虛函數。 所有的函數都是預設動态綁定的。
https://www.runoob.com/java/java-polymorphism.html