对象模型的实现布局

时间:2011-10-20 20:48:40

标签: c++ layout object

标准是否标准化了对象的实现细节?我听说在某些编译器上有所不同。即使它是,是否值得让lippman“在c ++对象模型中”并且如何?

1 个答案:

答案 0 :(得分:3)

我不能谈论这本书,因为我没有亲自阅读,但这是一个共同的建议,所以它不会受到伤害。

从标准来看,它并不强制要求特定的对象布局,而只是对程序的行为施加约束,但是理解甚至一个实现将帮助您理解幕后的内容。对于大多数事情,不同的编译器采用类似的方法。

作为一个例子,动态函数调度机制不是由标准定义的,只是行为,而是所有编译器都基于虚函数表实现它。表的布局(即如何在那里组织方法,表之前/之后可能有多少额外数据)可能会有所不同,但动态调度的问题是相同的,并且解决方案足够相似,理解一个通常会帮助您理解整体问题。