2

我问过一个同标题的帖子。但是由于误解,所有答案都在讨论它是否是有效的代码/行为。

然而,主要问题是,优化是否会启动?

参考链接的帖子,看到真正的案例:

D *pD = new D;
pD->foo();  // `D::foo()` is `final`

所有编译器都会pD->foo()通过不启动虚拟机制来优化调用吗?

[注意:
为什么我在前面的问题中给出了错误代码的示例?
我知道,以上述方式从基础转换为子并不是一个好的代码。主要目的是检查是否发生了类似 Java 的 final 优化,第一种方法是唯一可以验证它而无需进行组装的方法。]

4

0 回答 0