虚函数
yichen
posted @ 2014年5月05日 23:19
in Essay
, 367 阅读
1
1.virtual关键字只用在虚函数的声明中,在类外定义虚函数的时候不能用virtual。为了提高程序可读性,往往在派生类定义该函数时不省略virtual。
2.静态联编,当基类与派生类有同名函数时,调用的时候是根据类型来判断调用不同类中的同名函数,在编译阶段完成;动态联编,当将基类中与派生类同名的函数定义为virtual时,当用指针调用的时候是根据对象来判断调用不同类中的同名函数,在运行阶段完成。
3.虚函数在每个类中建议都有virtual说明,并且其对于每个类都有不同的函数定义。
4.只有通过对象指针或对象引用来调用虚函数,才能实现动态联编,如果使用对象来调用虚函数,则采用的是静态联编。
5.虚函数派生下去仍是虚函数,可以省略virtual,但不建议。
6.虚函数与虚拟继承有相似的地方,但它们之间没有任何联系。虚拟继承即虚基类实现。
7.通常将类簇中的具有共性的成员函数声明为虚函数,而具有个性的函数没有必要声明为虚函数。但也有类外