运算符过载错误

时间:2015-03-19 18:57:10

标签: c++ class operator-overloading syntax-error new-operator

我有以下代码:

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

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

我想重载+运算符:

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; 
}; 

在我的main()函数中:

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

我做不到,因为它给了我一个错误:

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

我做错了什么?

0 个答案:

没有答案