Diferença de layout de memória entre classes aninhadas e herança múltipla em C ++?

Estou tentando entender como COM especifica o layout de seus objetos, para que um cliente que queira usar um objeto COM saiba como fazê-lo.

Eu li que um objeto COM que implementa várias interfaces pode fazê-lo de diferentes maneiras, incluindo o uso de classes aninhadas ou herança múltipla.

Meu entendimento é que ambas as técnicas teriam que produzir o mesmo layout de memória (em conformidade com a especificação COM) para que um cliente que deseja usar o objeto COM (por exemplo em C) saiba como fazê-lo.

Portanto, minha pergunta específica é: existe uma diferença no layout da memória para objetos c ++ implementados usando herança múltipla versus classes aninhadas.

E alguém poderia me apontar para onde um layout de objeto COM é especificado?

questionAnswers(4)

yourAnswerToTheQuestion