最近我参加了一个面试。面试官让我解释一下C++中的虚函数机制。我解释了如何使用VPTR和VTABLE。我详细解释了如何使用VPTR和VTABLE来实现运行时多态性。
当我解释编译器如何引入隐藏代码来从类中获取VPTR时,从VTABLE获取函数地址并解析调用。但他对答案并不满意。他问我隐藏代码的细节?编译器到底是做什么的?如果编译器为你做了所有的事情,那么开发者又有什么用呢?
我搜索了虚拟函数编译器角色的详细信息。关于隐藏的代码。但是仍然不清楚这个问题。
有什么帮助或建议吗?
发布于 2015-06-25 03:17:09
如果编译器为你做所有的事情,那么developer有什么用呢?
开发人员在那里指定他们的意图,编译器在那里将意图转换为可执行文件。随着时间的推移,计算机变得更快,编译器变得更智能,所以不需要用汇编代码来表达开发人员的意图,而是用Erlang、F#、Prolog等等。
换句话说,了解C++编译器生成的代码的细节很有趣,但这不是C++开发的核心。
最后,回答所引用的问题:
编译器还没有做好所有的事情。不幸的是,
https://stackoverflow.com/questions/31034277
复制相似问题