use*_*661 9 c++ virtual-functions compiler-optimization
用于说明虚拟分派在运行时发生的原因的最常见示例是在编译时无法确定将要创建哪个Derived类.例如:
Base* b = (rand() % 2 == 1 ? new Derived1() : new Derived2());
Run Code Online (Sandbox Code Playgroud)
或者当它取决于用户输入.
假设情况都不是这样,并且可以在编译时完全确定基指针引用的Derived类.
如果在编译时知道基类指针指向哪个Derived类,编译器是否通过用适当的Derived函数替换它来优化虚函数调用,而不是在运行时进行vtable查找?
| 归档时间: |
|
| 查看次数: |
396 次 |
| 最近记录: |