虚函数 虚函数表

虚函数是面向对象编程函数的一种特定形态,是C++用于实现多态的一种有效机制。C++的多态可以分为静态多态和动态多态。函数重载和运算符重载实现的多态属于静态多态,而通过虚函数可以实现动态多态。实现函数的动态联编其本质核心则是虚表指针与虚函数表。

虚函数的本质就是通过基类访问派生类定义的函数。每一个含有虚函数的类,其实例对象内部都有一个虚函数表指针,该虚函数表指针被初始化为本类的虚函数表的内存地址。所以在程序中,不管对象类型如何转换,但该对象内部的虚函数表指针是固定的,这样才能实现动态地对对象函数进行调用,这就是C++多态性的原理。

使用虚函数注意事项:

  • 只需在声明函数的类体中使用关键字virtual将函数声明为虚函数,在定义函数时不需要。
  • 将基类中某一成员函数声明为虚函数后,派生类中的同名函数自动成为虚函数。
  • 如果类(基类和派生类)中声明了某成员函数为虚函数,则类中不能再出现与之相同的非虚函数。
发布了49 篇原创文章 · 获赞 14 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_41078889/article/details/104759046
今日推荐