Aquí están mis suposiciones, basadas en la pregunta.
1) Tienes un caso en el que lanzas de una C a una A y obtienes el comportamiento esperado.
2) Agregaste una función virtual, y ese reparto ya no funciona (dado que ya no puedes extraer datos de A directamente después del lanzamiento a A, obtienes datos que no tienen sentido para ti).
Si estas suposiciones son ciertas, la dificultad que experimenta es la inserción de la tabla virtual en B. Esto significa que los datos en la clase ya no se alinean perfectamente con los datos en la clase base (como en la clase bytes agregados, la tabla virtual, que están ocultos para usted). Una prueba divertida sería verificar sizeof para observar el crecimiento de bytes desconocidos.
Para resolver esto, no debe lanzar directamente de A a C a los datos de cosecha. Debería agregar una función getter que está en A y heredada por B y C.
Dada su actualización en los comentarios, creo que debería leer this, explica las tablas virtuales y el diseño de la memoria, y de qué depende el compilador . Ese enlace explica, con más detalle, lo que expliqué anteriormente, pero da ejemplos de que los punteros son valores diferentes. Realmente, tenía POR QUÉ me estabas preguntando mal, pero parece que la información sigue siendo la que querías. El elenco de C a A tiene en cuenta la tabla virtual en este punto (nota C-8 es 4, que en un sistema de 32 bits sería el tamaño de la dirección necesaria para la tabla virtual, creo).
¿Qué quieres decir exactamente con que son iguales? ¿Significa esto que obtienes los valores esperados cuando lanzas de uno a otro en el caso A pero no en el caso B? –
Trate de proporcionar un ejemplo que esté más cerca de su código real, porque su suposición es incorrecta (el error está en otra parte). [Esos apuntadores apuntan a la misma ubicación] (http://ideone.com/oNeFO). –
Puedo estar un poco confundido. Pensé que pA y pC tendrían el mismo valor si apuntan al mismo objeto en la memoria, incluso si uno es un A * y el otro es un C *. http://img831.imageshack.us/img831/6848/screenshotsbc.jpg – user987280