operator dodowania, dwie zmienne

0

Witam, mam problem z przeciążeniem operatora dodawania z dwiema zmiennym, próbowałem kilkanaście razy i postanowiłem zwrócić się o pomoc. Mógłby ktoś powiedzieć mi jak z tym sobie poradzić.

#include <iostream>

using namespace std;
class cyfra;
class Liczba
{
    public:
    int x;
    int y;
    Liczba (int x,int y) : x(x), y(y)
    {

    }
    friend Liczba operator+(const Liczba& liczba1, const cyfra& liczba2);
    int returnwartosc()
    {
        return x;
    }
};


Liczba operator+(const Liczba& liczba1, const Liczba& liczba2.wartosc)
{
    return Liczba(liczba1.x+liczba2.x) && Liczba(liczba1.y+liczba2.y);

}

int main()
{
    Liczba liczba1(10,20);
    Liczba liczba2(20,30);

    cout<<"x1 "<<liczba1.x<< " y1 "<<liczba1.y<<endl;
    cout<<"x2 "<<liczba2.x<< " y2 "<<liczba2.y<<endl;
    Liczba liczba3=liczba1+liczba2;
    cout<<"x3 "<<liczba3.x<< " y2 "<<liczba3.y<<endl;
    return 0;
}
0

Jeśli chodzi o tę definicję poza klasą, to może coś takiego:

Liczba operator+(const Liczba& liczba1, const Liczba& liczba2)
{
    return Liczba(liczba1.x+liczba2.x, liczba1.y+liczba2.y);
}
0
#include <iostream>
using namespace std;

class Liczba
  {
   public:
   int x,y;
   Liczba(int x,int y):x(x),y(y) {}
   friend Liczba operator+(const Liczba &a,const Liczba &b) { return Liczba(a.x+b.x,a.y+b.y); }
   friend ostream &operator<<(ostream &s,const Liczba &L) { return s<<'('<<L.x<<','<<L.y<<')'; }
  };

int main()
  {
   Liczba liczba1(10,20),liczba2(20,30);
   cout<<"liczba1: "<<liczba1<<endl;
   cout<<"liczba2: "<<liczba2<<endl;
   cout<<"suma "<<(liczba1+liczba2)<<endl;
   return 0;
  }

http://ideone.com/VZDRkq

1 użytkowników online, w tym zalogowanych: 0, gości: 1