Перегрузка инкремента\декремента. Комплексные числа - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д