![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| vilia |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 18.11.2006 Репутация: нет Всего: нет |
Помогите, пожалуйста!. Нужно написать функцию с заранее неизвестным количеством аргументов. Типы аргументов заранее неизвестны(как в printf). Но это не самое сложное. Заранее неизвестны даже те типы аргументов, которые могут быть в функции, поэтому методика как в том же printf'e не пройдет.(там строка в которой перечислены типы ожидаемых переменных) В то же время мне нужно привести аргументы функции к их собственному типу. То есть чтобы функция которая получает два аргумента типов вектор и матрица(и возможно какие-то допюуказания о типах) могла понять то что это именно вектор и матрица, а не, скажем два числа типа float, - и применять к ним некие операции.
|
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
понимаешь, если ничего не известно, как можно что-то определить -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| vilia |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 18.11.2006 Репутация: нет Всего: нет |
Прошу прощения. Я неверно объяснил. В функцию передаются параметры и, возможно, какая-то информация специфицирующая тип к которому нужно привести аргументы. Далее мне нужно эту информацию расшифровать и сделать присваивание type a=va_arg(ap,type); no я не могу в функции написать
А вообще суть проблемы. Мне нужно написать класс функций(в математическом смысле). Класс должен содержать указатель на функцию которая вычисляет значение по данным аргументам. Кроме того для построения скажем производной функции необходимо создать объект этого же класса тоже с указателем на функцию определенных типов аргументов. Я посмотрел как реализована функция va_arg. Фактически, это параметризированный define в котором тип подставляется в программу как текст. А можно ли подобную концепцию реализовать для функций-членов - то есть создавать "define-члены"? Или хранить, например, в массиве неким образом названия типов и преобразовывать тип к неообходимому. Вот еще один вопрос могу ли я написать функцию содержащую в себе какое-то заранее неизвестное define-выражение и потребовать от пользователя чтобы он его определял перед вызовом функции. Скажем, так
|
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Есть несколько вариантов, например можно использовать шаблоны. А можно делать аналогично функции printf.
|
|||
|
||||
| MAKCim |
|
||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
шаблоны?
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||
|
|||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |