有没有办法确保成员函数在D中是虚拟的?

Fer*_*cio 6 d

据我所知,所有成员函数在D中都是虚拟的,但如果编译器发现它们永远不会被覆盖,则它可以自由地使函数成为非虚函数.

我不清楚的是当你编译一个不覆盖成员函数的模块然后将那个模块导入你覆盖成员函数的其他地方时会发生什么.我认为它不会重新编译原始模块.它是否只是假设任何具有外部链接的成员函数是虚拟的?

Fee*_*ure 5

默认情况下,所有D成员函数都是虚拟的 我不认为有任何编译器实际上将非虚拟函数作为优化.你可以通过将类或函数标记为"final"来手动完成.