Я пытаюсь перенести некоторый код C# на другой язык (C# не является моим обычным языком).Перегрузка сложения оператора C#
У меня есть вектор класса (cpVect
), который переопределяет оператор «+» дважды:
public static cpVect operator +(cpVect p1, cpVect p2)
{
return new cpVect(
p1.x + p2.x,
p1.y + p2.y
);
}
public static cpVect operator +(cpVect p1)
{
return new cpVect(
+p1.x,
+p1.y
);
}
Я могу видеть, что новый экземпляр cpVect
возвращается из обоих методов, но я пытаюсь выяснить, как можно было бы назвать эти методы в примере кода (поэтому я могу убедиться, что правильно их портирую). Например, добавляет ли второй метод p1 к получающему cpVect?
v3 = v1 + v2 <-- does this call method one above?
v1 = v1 + v2 <-- does this call method two above?
Благодаря
Как в стороне, сейчас самое время узнать о соглашениях об именах .NET и применить их к вашему коду. Также обратите внимание, что вы не * переопределяете * что угодно - вы перегружаете * операторы. –
Точка взята - я имел в виду перегрузку :) – Garry