Ошибка Pascal ABC NET. Перегруженная операция должна быть статической функцией
Function Operator + (A,B: Массив): Массив;
begin
Var Res:= New Массив (A.Size + B.Size);
For I:Integer:=0 To A.Size-1 Do Res[I]:= A[I];
For I:Integer:=A.Size To Res.Size-1 Do Res[I]:= A[I-A.Size];
Result:=Res;
End;
Переопределял оператор + для объекта класса массив.
Выдает ошибку: Перегруженная операция должна быть статической функцией.
Подскажите, что не так.
Массив - это свой велосипед над Array? Так-то над массивами в Pascal ABC.NET уже перегружен оператор + и он работает именно так.
Если оператор находится вне описания класса его стоит описать так
function Operator + (A,B: Массив): Массив; extensionmethod;
begin
....
....
end.
Если внутри описания класса
static function Operator + (A,B: Массив): Массив;
begin
....
....
end;
Копируйте не циклами. Копируйте Array.CopyTo В т. ч. один из перегруж. методов может копировать в массив с указанной позиции.
Лучше делать первым способом