: 建造虚拟类的时候使用到 abstract
非虚拟类,需要重载方法的时候,用 virtual 定义动态方法.
abstract 需要和 virtual 或者 dynamic 一起使用.
virtual 和 dynamic 的分别是, virtual 使用内存保存调用地址,因此占内存而速度快, dynamic 在调用时动态获取调用地址,因此不占内存而速度慢.
典型的应用例子是: WMM_MouseMove 处理方法中用 virtual, WM_CLICK 处理方法中用 dynamic. 配搭非常合理.