我有以下代码:
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+'
我做错了什么?