C++ 编译器在C++;

C++ 编译器在C++;,c++,compiler-construction,virtual-functions,C++,Compiler Construction,Virtual Functions,最近我参加了一次面试。面试官让我解释C++中的虚拟函数机制。我解释了如何使用VPTR和VTABLE。我详细解释了如何使用VPTR和VTABLE实现运行时多态性 当我解释编译器如何引入隐藏代码从类中获取VPTR时,从VTABLE获取函数地址并解析调用。但他对答案并不满意。他问我隐藏代码的细节?编译器到底做什么?如果编译器为您做所有事情,那么开发人员的作用是什么 我搜索了虚拟函数编译器角色的详细信息。关于隐藏代码。但仍然不清楚这个问题 请问,有什么帮助或建议吗 如果编译器为您做所有事情,那么开发人员

最近我参加了一次面试。面试官让我解释C++中的虚拟函数机制。我解释了如何使用VPTR和VTABLE。我详细解释了如何使用VPTR和VTABLE实现运行时多态性

当我解释编译器如何引入隐藏代码从类中获取VPTR时,从VTABLE获取函数地址并解析调用。但他对答案并不满意。他问我隐藏代码的细节?编译器到底做什么?如果编译器为您做所有事情,那么开发人员的作用是什么

我搜索了虚拟函数编译器角色的详细信息。关于隐藏代码。但仍然不清楚这个问题

请问,有什么帮助或建议吗

如果编译器为您做所有事情,那么开发人员的作用是什么

开发人员在那里指定他们的意图,编译器在那里将意图转换为可执行文件。随着时间的推移,计算机变得越来越快,编译器也越来越智能,所以不需要用汇编代码来表达开发人员的意图,只需要用Erlang、F#、Prolog等等

P> >,了解C++编译器生成的代码的细节是有趣的,但它不是C++开发的核心。 最后,回答所引用的问题:


编译器还没有完成所有工作。不幸的是。

从技术上讲,根本不需要使用vtable,听起来面试的人只是在提升他/她的自我。我想当“使用开发者”成为一个话题时,采访接近尾声了?我不明白为什么编译器如何实现虚拟方法很重要。IMHO,唯一重要的概念是如何在高层理解中解析虚拟方法。这是否意味着作为开发人员,我们不必担心编译器如何实现其虚拟机制?我的观点是关于“隐藏”代码。