虚析构函数:
一般都是必须为多态基类声明一个虚析构函数,如果一个类根本没有虚拟函数,那么就不能为其声明虚拟函数
因为声明虚拟函数是要空间消耗的.要建立虚函数表、虚函数指针这些东西。
总体而言:虚析构函数的一个标准:当一个类中至少含有一个虚函数,才把它声明为虚析构函数。
构造函数是没有必要声明为虚函数的,也不能声明虚函数。因为从实现角度来讲,虚函数的实现依赖虚函数指针,虚函数表,
但是虚函数指针是在构造函数中初始化的,这样就 变成了鸡生蛋的问题了。
下面看为什么要为多态基类声明虚析构函数。
http://m.blog.csdn.net/blog/starlee_11109/619827