Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Подскажите на C++ сделать следующее...

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Skeld



Зарегистрирован: 27.04.2005
Сообщения: 5
Откуда: Новокузнецк

СообщениеДобавлено: Ср Июн 29 2005 08:42    Заголовок сообщения: Подскажите на C++ сделать следующее... Ответить с цитатой

Хотелось бы написать функцию в которую передовалось разное количество параметров с любыми типами данных. Эта функция в свою очередь создавала структуру с этими самыми параметрами.

Как это реализовать?

Заранее спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kefir



Зарегистрирован: 16.04.2005
Сообщения: 443
Откуда: Пермь

СообщениеДобавлено: Ср Июн 29 2005 11:29    Заголовок сообщения: Ответить с цитатой

Как передавать функци различное число параметров разного типа я не помню, надо книжки читать, которых под рукой у меня нет.
Во время выполнения при всем желании структуру создать невозможно.
Но можно сформировать класс контейнер, что-то типа ассоциативного массива, а там получать доступ ко всему что там есть, узнавать тип и все такое.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Skeld



Зарегистрирован: 27.04.2005
Сообщения: 5
Откуда: Новокузнецк

СообщениеДобавлено: Ср Июн 29 2005 12:04    Заголовок сообщения: Ответить с цитатой

Был бы признателен, за пример кода. Smile) А то как-то не доходит. Smile)

Заранне Благодарю.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
kolobok0



Зарегистрирован: 22.04.2005
Сообщения: 253
Откуда: Мсква

СообщениеДобавлено: Ср Июн 29 2005 17:58    Заголовок сообщения: Если... Ответить с цитатой

Если разное кол-во, но типы известны (и их позиции) то катит стандартное обьявление дефолтного значения параметра.

Если передавать-создавать непонятно что (хотя по мне - енто есть повод почитать про ООД либо примеры интересного применения си плас плас - Джэфа Элджера), то у Вас напрашиваеться коллекция нечто (поля структур) содержащие в себе типизацую каждого айтема. При этом перекрытые методы доступа позволяют более осмысленно юзать это из кода. Плюсы - наверное очевидно (решение). Минус - нет типизации (и чиссо моё имхо) мона реализовать красивее.


с уважением
(круглый)
_________________
(круглый)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wladimir



Зарегистрирован: 02.03.2005
Сообщения: 150
Откуда: Ставропольский край

СообщениеДобавлено: Чт Июн 30 2005 20:49    Заголовок сообщения: Ответить с цитатой

Я бы делал через ссылку на std :: vector вариантов. Варианты - либо борландовский Variant, либо boostовые.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Skeld



Зарегистрирован: 27.04.2005
Сообщения: 5
Откуда: Новокузнецк

СообщениеДобавлено: Пт Июл 01 2005 04:12    Заголовок сообщения: Ответить с цитатой

Я тоже думал что Вариант, но в моём случае критично расходование памяти. Так что не подходит. Думаю попробывать по другому. Всем кто откликнулся спасибо. Smile)

Для kolobok0: Как красивее? Smile Можно поподробнее?
_________________
Упаси меня от друзей, а от врагов я сам избавлюсь.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
kolobok0



Зарегистрирован: 22.04.2005
Сообщения: 253
Откуда: Мсква

СообщениеДобавлено: Пт Июл 01 2005 14:10    Заголовок сообщения: Про красоту... Ответить с цитатой

"Красиво" - то зависит уже от способа решения конкретной задачи. Думаю стоит Вам взглянуть на книжку Элджера. Она даёт писчу для размышлений. Ну например проскакивает такой термин как "виртуальный конструктор" что немного не вяжеться с языком на котором это рассматриваеться Smile занимательная информация. На мой взгляд есть ышо целая "маленькая тележечка" приёмов, которые в принцепе ничего сверхгениального не несут. Однако же эти примеры в "повседневной" рутине значительно могут облегчить код и сделать его более интересным.
Например...
Все мы сталкивались в тех или иных обработчиках GUI с необходимостью типизировать обьект приходящий по событию. Уверен, что после ознакомления с этой книгой у Вас в коде исчезнуть такие весчи как switch() или if..if...if... Smile

удачи Вам
(круглый)
_________________
(круглый)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Skeld



Зарегистрирован: 27.04.2005
Сообщения: 5
Откуда: Новокузнецк

СообщениеДобавлено: Пт Июл 01 2005 14:31    Заголовок сообщения: Ответить с цитатой

Спасибо за совет, уже читаю интересная книжечка. Smile)))

Всем огромное спсибо. Smile
_________________
Упаси меня от друзей, а от врагов я сам избавлюсь.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Laptev M.



Зарегистрирован: 25.02.2005
Сообщения: 23

СообщениеДобавлено: Сб Июл 02 2005 00:39    Заголовок сообщения: Ответить с цитатой

Народ, а вы не подскажите точное название этой книги, или не могли бы дать на неё ссылку в инете?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Aragaer



Зарегистрирован: 28.03.2005
Сообщения: 164

СообщениеДобавлено: Сб Июл 02 2005 00:55    Заголовок сообщения: Ответить с цитатой

Вариант для С без ++
Запихнуть все данные в произвольном порядке в некий массивчик (с помощью memcpy). Запихнуть в другую строчку порядок типов в ней (допустим строка "iicd" будет обозначать int, int, char, double, но это исключительно для примера). Указатель на исходный массивчик перекинуть в виде указателя на char, как и полагается.
Внутри программмы memcpy'ами все разобрать на составляющие.

Либо передать значения по ссылке. То есть безо всяких трюков с памятью перекинуть массив указателей и массив типов.
_________________
Open your eyes.
And Awaken.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Skeld



Зарегистрирован: 27.04.2005
Сообщения: 5
Откуда: Новокузнецк

СообщениеДобавлено: Пн Июл 04 2005 06:45    Заголовок сообщения: Ответить с цитатой

Laptev M.:

http://anatolix.naumen.ru/Books/cplusplus

Пожалуйста. Smile))
_________________
Упаси меня от друзей, а от врагов я сам избавлюсь.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...