Non, objet1 est de type A* !
A*objet1=new B;
veux dire que tu déclare une variable de nom "objet1" qui est un pointeur sur une classe de type A !
Et ensuite, tu fait pointé objet1 sur une classe de type B (new B).
donc, *objet1 est vu par le compilateur comme étant de type A et non de type B.
Ensuite, par dessus, il y a le polymorphisme qui viens se greffer dessus. Lorsque tu as un pointeur de classe et que tu appel une méthode, si celle ci est virtuelle, il regarde dans la v-table quelle fonction utiliser.
D'un autre coté, tu fait *obj1=*obj2. Mettons qu'il comprenne le polymorphisme dans ce cas là (à vérifier, pour moi le compilo voi : A.operator=(A)) il va alors chercher à trouver la méthode B::operator=(A); si celle-ci n'est pas défini il va chercher dans la classe mère, à savoir A, A::operator=(A), qu'il va trouver.
D'un autre coté, comme tu ne mets pas le code source, je ne fait que des hypothèses.
Met au moins la déclaration des classes.
D'un autre coté, je ne comprends pas pourquoi tu met du B dans du A. autant mettre du B dans du B. La démarche se comprends si tu fait :
A** objet=new A*[N];
objet[0]=new B;
objet[1]=new A;
c'est à dire si tu utilise le polymorphisme.
Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur