不能为虚函数的有:构造函数,静态函数,内联函数,友元函数
构造函数,因为从语义上不支持,本来是为了明确初始化对象成员才产生的。
静态函数,归类所有,没有动态绑定的必要性。
内联函数,在代码中直接展开,为编译时,而不是运行时动态绑定。
友元函数,不存在动态绑定。
析构函数为什么要为virtual的呢?
because if :
CBase * pBase;
CChild c;
pBase = &c;
Delete pBase;