0

I have the following code:

class Pudelko{
    private:
       int rozmiar;
       int* tab;

    public:       
       Pudelko(int size){
          this->rozmiar = size;
          this->tab = new int[size];       
       };
       Pudelko& operator+ (const Pudelko &P);       
};

And I want to overload the + operator:

Pudelko& Pudelko::operator+ (const Pudelko &P){ 
     int s = this->rozmiar > P.rozmiar? P.rozmiar: this->rozmiar;
     Pudelko* sum;
     sum = new Pudelko(s);
     for(int i=0; i<s; i++){ 
        sum->tab[i] = this->tab[i] + P.tab[i]; 
     }    
     return *sum; 
}; 

In my main() function:

Pudelko* p;
p = new Pudelko(2);  
p->wprowadz();  // set tab elements for first object

Pudelko* p1;
p1 = new Pudelko(3);
p1->wprowadz(); // set tab elements for second object


Pudelko* suma;
suma = p + p1;     // I want to add two object
suma->wypisz();   // show output tab

I can't do that because it gives me an Error:

invalid operands of types `Pudelko*' and `Pudelko*' to binary `operator+' 

What am I doing wrong?

Adam Parkin
  • 17,891
  • 17
  • 66
  • 87
Marianx
  • 31
  • 5

0 Answers0