Sylvain SF a écrit :
> elle set impossible comme telle.
> B1 définit un operateur = avec B1& en paramètre, pas un A&
En fait si. En fait, B0:

perator=(B0 const &) empêche la création
d'un operator= automatique. Un effet de bord est donc l'appel de
A:

perator=(A const &) à l'affectation d'un A. C'est du moins le
comportement que j'observe avec gcc 4.3.0, et il ne me parait pas aberrant.
>> Lever une exception car c'est un non sens ? Et surtout, comment je le
>> détecte dans l'affectation ?
>
> si l'affectation est un non-sens, les operéateurs d'affectation
> devraient être privés pour éviter ces non-sens.
Effectivement, c'est une solution à envisager.
> si la perte signifie que l'instance sera caduque, interdissez les
> affectations; si les classes sont transposables (A = coordonnées,
> B0 = cartesiennes, B1 = polaires) offrez ces opérateurs et pourquoi
> pas un B0:
perator= (B1 const&) (et vice-versa).
Merci pour ta réponse.
Je répondrai à James un peu plus tard, car sa réponse va me demander
un peu beaucoup de réflexions et d'essais avant de pouvoir apporter une
réponse pertinente.
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org