J'ai 3 classes A, B et C. C est dérivé de A et B. je reçois un pointeur vers le pointeur de la classe C et transtypage vers A **, et B * *, la variable qui maintiennent le B ** a l'adresse de A ** dans mon exemple B ** BdoublePtr tenir l'adresse d'un ** .i je utilise le code suivant
pointeur vers pointeur de classe dérivée dans l'héritage multiple
#include "conio.h"
#include "stdio.h"
#include "string.h"
class A
{
public:
A()
{
strA=new char[30];
strcpy(strA,"class A");
}
char *strA;
};
class B
{
public:
B()
{
strB=new char[30];
strcpy(strB,"class B");
}
char *strB;
};
class C : public A, public B
{
public:
C()
{
strC=new char[30];
strcpy(strC,"class C");
}
char *strC;
};
int main(void)
{
C* ptrC=new C();
A * Aptr=(A*)ptrC;
printf("\n class A value : %s",Aptr->strA);
B * Bptr=(B*)ptrC;
printf("\n class B value :%s",Bptr->strB);
printf("\n\nnow with double pointer ");
A ** AdoublePtr=(A **)&ptrC;
Aptr=*AdoublePtr;
printf("\n class A value : %s",Aptr->strA);
B * * BdoublePtr=(B **)&ptrC;
Bptr=* BdoublePtr;
printf("\n class B value : %s",Bptr->strB);
getch();
return 0;
}
Pourriez-vous poster votre code sans le balisage html supplémentaire, et soit indenter le tout par quatre espaces ou appuyez sur le bouton de code afin qu'il apparaisse formaté? –
Poser une question dans votre question. –
Je ne vois pas de question ici, mais l'utilisation de moulages de style C en conjonction avec l'héritage multiple est presque certainement aller mal. Utilisez 'static_cast' ou' dynamic_cast' à la place. –