gpt4 book ai didi

c++ - 在静态分配的对象上调用虚函数时是否使用虚表

转载 作者:行者123 更新时间:2023-11-30 03:36:33 24 4
gpt4 key购买 nike

这是一个例子:

struct A {
virtual int f() const { return 1; }
};

struct B : A {
virtual int f() const { return 2; }
};

int main() {
B b;
cout << b.f() << endl;
}

B 的实例上调用 f() 是否会导致虚拟表查找?还是有可能,但编译器可以优化它?

最佳答案

取决于编译器和优化选项。

但通常,当现代编译器知道对象的最派生类型时,它会优化掉(间接)对对象的直接虚拟调用。

关于c++ - 在静态分配的对象上调用虚函数时是否使用虚表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40618658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com