Перегрузка инкремента\декремента. Комплексные числа - C#
Формулировка задачи:
Есть класс комплексных чисел, для него перегружаем инкремент или декремент. Если остальные перегрузки работают так как надо, то эти двое выполняются не корректно, помогите найти и исправить ошибку
При "complex.print(comp1++);" должно выводить на печать комплексное число "старое", а в следующем выводе "complex.print(comp1);" с прибавленной единицей к вещественной части.
public class complex
{
private double re, im;
public complex(double r, double i)
{
re = r;
im = i;
}
public static complex operator ++(complex a)
{
a.re++;
return a;
//new complex(a.re++, a.im);
}
}
public void input()
{
Console.Write("Вещественная часть: ");
R1:
try
{
re = Convert.ToDouble(Console.ReadLine());
}
catch
{
Console.WriteLine("Ошибка ввода. Ожидается число");
goto R1;
}
Console.Write("Мнимая часть: ");
I1:
try
{
im = Convert.ToDouble(Console.ReadLine());
}
catch
{
Console.WriteLine("Ошибка ввода. Ожидается число");
goto I1;
}
Console.WriteLine();
}
static void print(complex a)
{Console.WriteLine("{0}+{1}*i", a.re, a.im);}
static void Main(string[] args)
{complex comp1 = new complex();
complex comp2 = new complex();
comp1.input();
comp2.input();
Console.WriteLine("Перегрузка ++:");
complex.print(comp1++);
complex.print(comp1);
}Решение задачи: «Перегрузка инкремента\декремента. Комплексные числа»
textual
Листинг программы
public static complex operator ++(complex a)
{
complex ob = new complex();
ob.re = a.re + 1;
ob.im = a.im + 1;
return ob;
}