标签: c++ polymorphism vptr
编译器将代码插入到初始化VPTR的构造函数的开头。此操作是否受构造函数是默认构造函数还是显式声明的影响?两者之间有什么区别吗?
答案 0 :(得分:3)
它将始终被插入,它必须是多态性才能工作,至少是编译器通常实现它的方式。它将始终初始化,您声明(或不声明)的构造函数是无关紧要的。
或者,嘿,也许它不会(虽然我不知道任何编程器的行为方式),所有你需要关心的是多态性是否有效,并且无论如何都会一直有效你声明了什么构造函数。