标准是否规范了对象的实现细节?我听说它在某些编译器上有所不同。即使是这样,是否值得进入 lippman 的“inside the c++ object model”以及如何?
最佳答案
书不能谈,因为我没有亲眼看过,不过是一般的推荐,所以无伤大雅。
作为标准,它不要求特定的对象布局,而只是对程序的行为施加限制,但即使了解一种实现也将帮助您了解幕后发生的事情。对于大多数事情,不同的编译器采用相似的方法。
举个例子,动态函数派发机制没有标准定义,只有行为,但是所有的编译器都是基于虚函数表来实现的。表的布局(即方法在那里的组织方式,表之前/之后可能有哪些额外数据)可能不同,但动态调度的问题是相同的,解决方案非常相似,理解一个通常会帮助您理解整体问题。
关于c++ - 对象模型的实现布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7842053/