Surchargé d'affectation d'Addition opérateur en C++ pour les deux ou plus de deux objets?

J'ai surchargé l'opérateur + comme ce

class sample
{
private : 
  int x;
public :
  sample(int x1 =0)
  {
    x = x1;
  }

  sample operator+(sample s);
};

sample sample::operator+(sample s)
{
  x = x + s.x;
  return *this;
}

int  main()
{
  sample s1(10);
  sample s2;
  s2 = s2 + s1;
  return 0;    
}

Est-ce correct?
Ma question est Si je veux ajouter deux échantillons différents objets comment j'ai surchargé le opeartor; e.g pour s = s1 + s2;

J'ai envie de faire s = s + s1 + s2 avec la mise en œuvre existantes.

Regardez ici! courses.cms.caltech.edu/cs11/material/cpp/donnie/cpp-ops.html ou cprogramming.com/tutorial/operator_overloading.html
notez que operator+ devrait pas modifier la valeur de l'objet sur la gauche de la +, mais le vôtre. Si vous avez écrit s3 = s1 + s2, votre code devrait changer s1 également contenir le résultat.
Aussi, main a un int type de retour.
Aussi, vous semblez être de tenter de faire la operator+ une fonction membre de la sample classe, mais vous l'avez fait tout à fait tort, ce code ne vient même pas près de la compilation. Voir sscce.org pour savoir comment écrire du code pour une question.
édité !

OriginalL'auteur Raulp | 2012-06-22