Ваш пример не терпит неудачу, потому что он не может повысить y
до Dual
;он терпит неудачу, потому что пытается преобразовать x
в двойное число, и не может.
Если вы хотите это сделать, вы можете добавить перегруженный double
метод к Dual
, который будет выполнять преобразованиеоперация.
Я предполагаю, что это не то, что вы хотите, а скорее вы хотите способ предварительного выделения массива фиктивных элементов класса Dual
.Для этого вы можете сконструировать конструктор Dual
так, чтобы он работал без входных аргументов, возвращая фиктивный или по умолчанию Dual
.Тогда вы можете сказать y(2,2) = Dual
, и у вас будет 2x2 предварительно выделенный массив фиктивных Dual
s.
Для более полного примера найдите в документе «Инициализация массивов объектов-значений».
В качестве альтернативы, вы можете сделать y
массивом ячеек вместо массива.