On Sun, 11 May 2008 02:41:37 +0200, "Sylvain SF"
<sylvain@boiteaspam.info>:
>dans une classe Integer, j'ai:
>
> void operator= (long);
Il y a là un truc bizarre : normalement, un X:

perator= devrait
renvoyer un "X&" :
X& X:

perator= (...)
{
...
return *this;
}
> void operator= (const Integer&);
> void operator= (const Bytes&);
> void operator= (const char*);
>
>où "Bytes" est une classe définissant un byte-array.
>
>pour des déclarations telles:
>
>Integer a; // membre d'une classe
>
>const Integer* n = ....... // expression déduite
>a = *n; // ERROR
Il faudrait donner un code minimaliste qui exhibe l'erreur. Ce
faisant, il y a d'ailleurs de bonnes chances que tu découvres le
problème toi-même.
Je suis prêt à parier qu'aucun compilateur n'a jamais indiqué d'erreur
dans le code suivant :
class Bytes {};
class Integer
{
public:
Integer& operator= (long);
Integer& operator= (const Integer&);
Integer& operator= (const Bytes&);
Integer& operator= (const char*);
};
int main()
{
Integer a;
const Integer* n= new Integer;
a = *n;
}