可以参考下: http://c.chinaitlab.com/basic/903952.html
1.析构函数最好是虚函数:
举一个反例来看看先: 调用部分未写: A *a = new B; delete a; cout << "Game Over" << endl;
结论:并未调用B类的析构函数,这个是很可怕的,故需要在A的析构函数前面加上 virtual 即 virtual ~A() { } ....;
可以参考下: http://c.chinaitlab.com/basic/903952.html
1.析构函数最好是虚函数:
举一个反例来看看先: 调用部分未写: A *a = new B; delete a; cout << "Game Over" << endl;
结论:并未调用B类的析构函数,这个是很可怕的,故需要在A的析构函数前面加上 virtual 即 virtual ~A() { } ....;