实现虚函数方法:
1.必须有函数依赖于对象调用:如果函数依赖于类调用(如静态函数),则不可成为虚函数。虚函数的地址存放在虚函数表中,由虚函数指针指向虚函数表,通过调用虚函数指针来调用虚函数。而虚函数指针存放在对象中。
2.函数必须可寻址:因为虚函数表存放的是虚函数地址。
无法成为虚函数的函数:
1. 构造函数:调用构造函数才能产生对象,而虚函数必须依赖于对象调用。
2.静态函数:静态函数依赖于类。
3.内联函数:无法产生函数符号,不能放入虚函数表。
可以成为虚函数的函数:
1.普通成员函数
2.析构函数:析构函数之前已有对象建立,且析构函数可寻址。