(я не ищу полный ответ) По сути, наше задание состояло в том, чтобы реализовать несколько различных типов чисел (целые, рациональные, сложные, вещественные) с использованием шаблона посетителя, такого кода, как этот
number[] N = {new Frac(3,5),new Int(1),new Real(3.14159)};
number sum = new Int(0);
foreach(number x in N) sum = sum.add(x);
будет работать.Единственный намек, который нам дали, заключался в том, что одним из способов было создание 2D-массива, чтобы каким-то образом использовать его для отправки функций?Однако, учитывая эту информацию, я все еще не уверен, как поступить.Честно говоря, было бы просто приятно увидеть пример того, как выглядит множественная отправка с одним аргументом.
public class Int : Inumber
{
public int val;
public Int(int v) {val=v;}
public Int dispatch(Int x){return Int(x.val + this.val);}
public Real dispatch(Real x){return Real(x.val + this.val);}
public number add(Inumber x) { x.dispatch(this) }
}
Я думаю, что это произойдет как-то так, но это все равно не работает.Любые комментарии будут приветствоваться