gpt4 book ai didi

function - 具有虚函数的类中的非虚函数

转载 作者:行者123 更新时间:2023-12-02 19:58:22 25 4
gpt4 key购买 nike

简单问题:非虚函数是否会产生在具有其他虚函数的类中进行 vtbl 查找的成本?例如:

Class A
{
virtual void init();
void update();
};

Class B : public A
{
void init();
}

A* = new B();
A->init();

while(true)
{
A->update();
}

更新调用会产生 vtbl 查找的成本吗?这段代码对性能非常敏感,因此我需要避免虚函数调用。谢谢!

最佳答案

没有。 update() 不会出现在 vtable 中。维基百科是这么说的:“请注意,那些在声明中不携带关键字 virtual 的函数......通常不会出现在 vtable 中。默认构造函数所带来的特殊情况也有异常(exception)。”

http://en.wikipedia.org/wiki/Virtual_method_table

关于function - 具有虚函数的类中的非虚函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6378960/

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