virtual

虚函数用来解决晚捆绑(late binding)/动态捆绑(dynamic binding)/运行时捆绑(runtime binding)。

仅需在基类中声明一个函数为virtual,调用所有匹配基类声明行为的派生类函数都将使用virtual机制,无论派生了多少层。

实际编码中,在派生类中也写上virtual,提高代码可读性。

带有虚函数的类,在头部放置一个VPTR,指向该类的VTABLE。VPTR长度即一个void指针的长度。

纯虚函数(用来定义接口类/抽象类)使用关键字virtual,并在其后面加上 = 0(表示在VTABLE表中为该函数保留一个地址,但值为NULL。)。实例化该类的行为会被编译器阻止(有NULL值的VTABLE是原因)。继承自抽象类的类,必须实现所有纯虚函数,否则,它仍然是一个抽象类。

相关文章:

  • 2021-10-11
  • 2021-05-27
  • 2021-09-08
  • 2022-12-23
  • 2022-12-23
  • 2021-11-05
  • 2021-07-26
  • 2021-11-10
猜你喜欢
  • 2021-07-16
  • 2022-12-23
  • 2021-06-15
  • 2021-05-27
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案