Re: [问题] 为何多型物件的解构子要用virtual?

楼主: charleshu (开始学剧本的即兴剧演员)   2021-01-05 00:47:21
※ 引述《d630200x (DOGE)》之铭言:
: 我对virtual的理解是将该函式宣告为可override
: 应该是类似对其产生function pointer,使得可以依据实际型态执行对应的function
: 但是我无法理解为何base class desturctor也需要宣告virtual
: 照理来说base与derived的删除应该互不相关才对
: derived先把自己删除,base再删除自己
: 为何变成指标后base不宣告virtual后derived就不会被执行了?
:
作者: loveme00835 (发箍)   2021-01-05 01:44:00
在 resolve function call 的时候并没有 vtable 的观念 [expr.call] 3. 如果看到 virtual 编译器就要去 vtable 找实体那就无法解释 [class.cdtor] 4 的行为.你这是从实作来理解语言设计

Links booklink

Contact Us: admin [ a t ] ucptt.com