friend myList<T> operator +( myList<T> &c1,myList<T> &c2);
myList<T> operator +(myList<T> &c1, myList<T> &c2)
{
int len1 = c1.getLength();
int len2 = c2.getLength();
int newLen = len1+len2;
int newSize = newLen;
T * newList = new T[newSize];
for(int i = 0;i<len1;i++){
newList[i] = c1.data[i];
}
for(int j=len1;j<newLen;j++){
newList[j] = c2.data[j-len1];
}
delete c1.data;
c1.data = newList;
c1.size = newSize;
c1.length = newLen;
return *c1;
}
void main(){
myList<int> *a = new myList<int>(5);
myList<int> *b = new myList<int>(5);
a+b;
}
errormessage:当我调用“ myList < int >*
”时,类型为“ myList< int > *
”和“ a+b
”的无效操作数为二进制“ operator +”,那么该怎么做才能正确呢?
答案 0 :(得分:1)
有很多健康的方法可以解决您的问题,但我仍将命名为两个:-
Dereference您的两个指针...
(*a)+(*b);
只需使用普通的非指针类...
myList<int> a = myList<int>(5);
myList<int> b = myList<int>(5);
// ...
此外,如果您使用的是指针,请不要忘记使用delete
并将其分配给nullptr
从内存中释放指针...请参见{{3} }以获取更多信息...