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?
 
    