<分区>
阅读虚函数时,我遇到了以下概念:“C++ 非虚函数调用在编译时通过静态绑定(bind)解析,而虚函数调用在运行时通过动态绑定(bind)解析。”
我的问题是:1) 如果我们的程序中有大量虚函数调用,那么它会对性能产生很大影响吗,因为它们是在运行时计算的?还是它与现代机器无关?
2) 这个数字取决于堆栈吗?
<分区>
阅读虚函数时,我遇到了以下概念:“C++ 非虚函数调用在编译时通过静态绑定(bind)解析,而虚函数调用在运行时通过动态绑定(bind)解析。”
我的问题是:1) 如果我们的程序中有大量虚函数调用,那么它会对性能产生很大影响吗,因为它们是在运行时计算的?还是它与现代机器无关?
2) 这个数字取决于堆栈吗?
最佳答案
一般来说,引用虚表来获取对象的函数地址的成本可以忽略不计。
但是,与其他任何事情一样,这取决于您的应用程序。一个好的经验法则是,如果您正在设计一个您知道对速度至关重要的类,那么请考虑此类问题。否则,担心更大的事情。
关于c++ - C++中的非虚函数与虚函数调用效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31350644/