Текущий архив: 2004.01.29;
Скачать: CL | DM;
ВнизВопрос: передача параметров функции в Delphi Найти похожие ветки
← →
PLP (2004-01-15 19:02) [0]Можно ли в Делфе в функцию передавать переменное число параметров, тип каждого из которых может немного варьироваться - (т.е. заранее неизвестно сколько переменных, каких типов и в каком порядке передается)?
Пример (или для чего это нужно):
функция произведения матриц в которую можно было бы передавать вектор-строки, вектор-столбцы и квадратные матрицы (т.е. либо одномерные массивы длины n, либо двумерные nXn, разумеется в правильном порядке и с допустимой размерностью), а результатом тоже будет вектор или матрица - смотря что получится.
Как можно такое реализовать?
Заранее спасибо!
← →
Тимохов (2004-01-15 19:03) [1]function Func(v: array of variant)
← →
Тимохов (2004-01-15 19:13) [2]Можно передевать func(v: variant) где v вариантный массив из массиво (т.е. фактически матрица).
← →
VMcL (2004-01-15 19:34) [3]Тимохов © (15.01.04 19:03) [1] =
function Func(const Params: array of const)
← →
Тимохов (2004-01-15 19:36) [4]VMcL © (15.01.04 19:34) [3]
Имхо, array of const устаревшая конструкция - array of variant, опять же имхо, лучше.
Что значит символ "="?
← →
Тимохов (2004-01-15 19:38) [5]array of const не тоже самое что array of variant
← →
VMcL (2004-01-15 20:04) [6]>> Тимохов © (15.01.04 19:36) [4]
>> Что значит символ "="?
Забыл, на клаве есть нужный символ. Я имел в виду ~
>> Тимохов © (15.01.04 19:38) [5]
Посмотри реализацию. Тоже самое.
P. S. Я свой вариант привел как дополняющий, а не исправляющий.
← →
Тимохов (2004-01-15 20:06) [7]
> >>Тимохов © (15.01.04 19:38) [5]
>
> Посмотри реализацию. Тоже самое.
>
> P. S. Я свой вариант привел как дополняющий, а не исправляющий.
Обязательно посмотрю завтра, но не уверен, что это так.
← →
VMcL (2004-01-18 11:50) [8]>>Тимохов © (15.01.04 20:06) [7]
Я сам сегодня на всяк случай посмотрел. Я ошибался. Реализация похожая (через TVarRec), но все-таки не через Variant (TVarData).
← →
Oyster (2004-01-18 13:24) [9]В этом примере можно использовать директиву overload
Что-то типа:
procedure p(x:array of extended);overload;
begin
...
end;
procedure p(x:array of array of extended);
begin
...
end;
Страницы: 1 вся ветка
Текущий архив: 2004.01.29;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.008 c