Surcharge de l'operateur +=

Le
Guillaume GOURDIN
Bonjour à tous, j'ai la classe suivante:

class LiwSet
{
public:

void operator+=(const LiwSet & p){ _x += p._x; _y += p._y; };
void operator-=(const LiwSet & p){ _x -= p._x; _y -= p._y; };

private:

int _x;
int _y;
};

Mais ce code ne compile pas avec g++. J'ai le message d'erreur suivant:
‘void LiwSet::operator+=(const LiwSet&)’ cannot be overloaded

Et je ne comprends pas pourquoi Quelqu'un pourrait-il m'éclairer?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel Decima
Le #310624
Bonjour à tous, j'ai la classe suivante:

class LiwSet
{
public:

void operator+=(const LiwSet & p){ _x += p._x; _y += p._y; };
void operator-=(const LiwSet & p){ _x -= p._x; _y -= p._y; };

private:

int _x;
int _y;
};

Mais ce code ne compile pas avec g++. J'ai le message d'erreur suivant:
‘void LiwSet::operator+=(const LiwSet&)’ cannot be overloaded


Quelle version de g++ ? Avec la 4.1.2, aucun probleme de compilation.

Guillaume GOURDIN
Le #310623
Quelle version de g++ ? Avec la 4.1.2, aucun probleme de compilation.


4.1.1

Jean-Marc Bourguet
Le #310622
Guillaume GOURDIN
Bonjour à tous, j'ai la classe suivante:

class LiwSet
{
public:

void operator+=(const LiwSet & p){ _x += p._x; _y += p._y; };
void operator-=(const LiwSet & p){ _x -= p._x; _y -= p._y; };

private:

int _x;
int _y;
};

Mais ce code ne compile pas avec g++. J'ai le message d'erreur suivant:
void LiwSet::operator+=(const LiwSet&) cannot be overloaded

Et je ne comprends pas pourquoi... Quelqu'un pourrait-il m'éclairer?


Je ne reproduis pas. Tu as essaye avec le code que tu nous a envoye?

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Fabien LE LEZ
Le #310621
On Thu, 09 Aug 2007 16:19:30 +0200, Guillaume GOURDIN

class LiwSet
{
public:

void operator+=(const LiwSet & p){ _x += p._x; _y += p._y; };


Normalement, ça s'écrit

LiwSet& operator+= (const LiwSet& p)
{
_x += p._x; _y += p._y;
return *this;
} // pas de point-virgule ici


Mais ce code ne compile pas avec g++. J'ai le message d'erreur suivant:
‘void LiwSet::operator+=(const LiwSet&)’ cannot be overloaded


Bizarre, le code tel que tu l'as donné est accepté par g++ 4.1.2,
Comeau (13/01/2004), et Borland C++ 5.5.

Publicité
Poster une réponse
Anonyme