Discussion: operateur =() MS VC
Afficher un message
Vieux 11/05/2008, 01h57   #2
Fabien LE LEZ
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: operateur =() MS VC

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;
}



  Réponse avec citation
 
Page generated in 0,04569 seconds with 9 queries