Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамический вызов методов 
:(
    Опции темы
mes
Дата 20.4.2010, 10:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Owen @  20.4.2010,  08:18 Найти цитируемый пост)
А чем не подходит передавать указатель на функцию/метод?

имхо : ну прежде всего тем, что автор ищет не решение задачи, а замену свитчу. А так как последнее без первого предполагает массу вариантов, то к цели придет, к сожалению, не скоро..


--------------------
PM MAIL WWW   Вверх
GoldFinch
Дата 20.4.2010, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



djamshud, покажи, как методы с extern "C" экспортировать
алсо прописывать неймспейс функции в ее имени - зло
PM MAIL ICQ   Вверх
djamshud
Дата 20.4.2010, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



GoldFinch, к методам extern "C" вообще не применим, кажется я писал об этом.

>алсо прописывать неймспейс функции в ее имени - зло 

Где я это предлагал?


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
GoldFinch
Дата 20.4.2010, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



djamshud, да, действительно, писал.

насчет неймспейсов - чтобы сохранить имя при С компоновке, придется заменять все имена функций на
namespace1_namespace2_...namespaceN_functionname,
иначе они могут начать пересекаться с другими именами
PM MAIL ICQ   Вверх
djamshud
Дата 20.4.2010, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



Неймспейсы - весьма надуманная проблема, отчасти связанная с неумением придумывать хорошие имена. Сишники всю жизнь как-то без неймспейсов хорошо обходятся, главное давать емкие и в то же время короткие названия для интерфейсных функций, а внутренние прятать в static.

По сабжу же: либо, как уже предлагали, заполнить таблицу соответствия "строка"-"функция/метод", либо, если лень или по другим неозвученным пока причинам, тянуть С-функции и перекладывать ответственность за соответствие типов с компилятора на себя.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
mes
Дата 20.4.2010, 19:47 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250




 smile 

Цитата(djamshud @  20.4.2010,  12:09 Найти цитируемый пост)
Неймспейсы - весьма надуманная проблема, отчасти связанная с неумением придумывать хорошие имена.

скорей наоборот, не любовь к неймспейсам из за того что многие не умеют их готовить smile хотя С++ сам частично в этом виноват, точнее его кривость в этой области.. Но пару условных договоренностей и плюсы от неймспейсов сразу преобладают над минусами.
smile

Цитата(djamshud @  20.4.2010,  12:09 Найти цитируемый пост)
. Сишники всю жизнь как-то без неймспейсов хорошо обходятся

А наши бабушки и дедушки обходились без компа .. Долой прогресс и удобства. 
 smile 


--------------------
PM MAIL WWW   Вверх
djamshud
Дата 20.4.2010, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



Оффтопик на оффтопике.

Я не говорил, что неймспейсы зло и вообще не нужны. Конечно нужны и конечно удобны. Просто если задача встает так, что они мешают, нет совершенно никакой проблемы от них отказаться, и именно эта "проблема" и связана с привычкой выдумывать длиннющие названия, разложенные по иерархии неймспейсов и классов, т.е. с неумением кратко и емко выразить смысл сущности. Хороший пример жизни без неймспейсов - POSIX, интерфейсы ядра Linux. Плохой - winAPI.

>А наши бабушки и дедушки обходились без компа .. Долой прогресс и удобства.

Си цветет и пахнет, а бабушки с дедушками уже только пахнут:D. Фу, злой юмор какой-то.

Это сообщение отредактировал(а) djamshud - 20.4.2010, 20:00


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
mes
Дата 20.4.2010, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(djamshud @  20.4.2010,  19:00 Найти цитируемый пост)

Си цветет и пахнет, 

угу, только отсутствие неймспесов, и обилие макросов в библиотеках очень часто становится костью поперек горла..
smile



--------------------
PM MAIL WWW   Вверх
djamshud
Дата 20.4.2010, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



>угу, только отсутствие неймспесов, и обилие макросов в библиотеках очень часто становится костью поперек горла..

Это проблема не языка, а специалистов, которые готовили плохие библиотеки. Хорошие ведь тоже есть:).


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
mes
Дата 20.4.2010, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(djamshud @  20.4.2010,  19:08 Найти цитируемый пост)
Это проблема не языка, а специалистов, которые готовили плохие библиотеки. Хорошие ведь тоже естьsmile. 

языка тоже.. он не позволяет сделать так как хочется - чисто и красиво smile

Добавлено через 24 секунды
чего то мы сильно ушли в оффтоп ))



--------------------
PM MAIL WWW   Вверх
djamshud
Дата 20.4.2010, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



Не соглашусь. Язык позволят ровно то, что он позволяет. Вы же, думаю, не считаете к примеру отсутствие удобных средств функционального программирования недостатком ассемблера? А вот безграмотность специалистов не позволяет им выработать нужный подход к построению программы, чтобы в итоге получилось так, как хочется -  чисто и красиво. И на с++ есть ужасные библиотеки, и на пистоне, и, думаю, на любом языке.

Добавлено через 1 минуту и 6 секунд
>чего то мы сильно ушли в оффтоп ))

Придет модератор и порежет или отправит в холиворы:).


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
mes
Дата 20.4.2010, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(djamshud @  20.4.2010,  19:26 Найти цитируемый пост)
Не соглашусь. Язык позволят ровно то, что он позволяет.

т.е. развивать язык и не стоит ?  и, в частности,  обещанных новшеств С++ вы не ждете ?

Цитата(djamshud @  20.4.2010,  19:26 Найти цитируемый пост)
Вы же, думаю, не считаете к примеру отсутствие удобных средств функционального программирования недостатком ассемблера? 

ну до функц. прогр. асму далеко, но в целом Вы правы, считаю.. 

хоть я асм последний раз в живую видел в "прошлой жизни", но уверен, что за время развития языка куча удобных инструментов с ЯВУ сползала на асм.

Добавлено @ 21:00
Цитата(djamshud @  20.4.2010,  19:26 Найти цитируемый пост)
И на с++ есть ужасные библиотеки, и на пистоне, и, думаю, на любом языке.

речь не о плохих специалистах,  таких везде хватает, а о возможностях языка, (не)позволяющих специалисту сделать чисто и красиво smile


Это сообщение отредактировал(а) mes - 20.4.2010, 21:00


--------------------
PM MAIL WWW   Вверх
djamshud
Дата 20.4.2010, 23:38 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



>т.е. развивать язык и не стоит ?  и, в частности,  обещанных новшеств С++ вы не ждете?

Развивать стоит, новшеств не жду, боле того я о них слышал лишь краем уха. Но как стандарт примут, так и посмотрю, чем стоит воспользоваться, а чем нет. Я прежде всего исхожу из позиции, что нужно эффективно применять то, что есть. Да и нынешние некоторые возможности плюсов не использую: stl, хитросплетенные шаблоны (привет Александурску), исключения... может что еще забыл.

Но развитие само по себе не значит, что вчера было плохо, а завтра станет хорошо. Это просто эволюция. Не стоит сидеть, смотреть в будущее и ждать, когда же снизойдет благодать.

>речь не о плохих специалистах,  таких везде хватает, а о возможностях языка, (не)позволяющих специалисту сделать чисто и красиво

Если язык не позволяет программисту решить задачу "красиво", значит программист выбрал не тот язык или не правильно спроектировал свое решение под этот. Значит это плохой специалист. Микроскопом гвозди не забивают.

Еще раз повторю мысль: если в языке нет какого-то ништячка, то это не делает автоматически язык плохим, более того это не есть недостаток, так же как и из-за отсутствия дополнительной пары рук человек не становится непригодным например к физической работе. А вот станет ли он от этого лучше - еще не факт:).


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
mes
Дата 21.4.2010, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(djamshud @  20.4.2010,  22:38 Найти цитируемый пост)
Еще раз повторю мысль: если в языке нет какого-то ништячка, то это не делает автоматически язык плохим, 

с такой постановкой согласен.. но я высказывался против насчет другого, а именно :
 если в языке нет инструмента (и его невозможно добавить вручную) для чего то нужного в русле специализации этого языка, то это минус языку.

Цитата(djamshud @  20.4.2010,  22:38 Найти цитируемый пост)
Если язык не позволяет программисту решить задачу "красиво"

проблема в том, что программа это решение  совокупности задач, и программисту приходится выбирать язык под наиболее ответственные задачи, а остальное решать как получится.

насчет неймспейсов, если быть объективными, то здесь "вина" не самого языка..  язык С идеологически "повторяет" модель принятую в системе, а в ней они не приняты и для введения в язык пришлось бы делать обходные пути ( как это сделано в С++), а это бы нарушило бы чистоту языка..


Цитата(djamshud @  20.4.2010,  22:38 Найти цитируемый пост)
Я прежде всего исхожу из позиции, что нужно эффективно применять то, что есть. 

Цитата(djamshud @  20.4.2010,  22:38 Найти цитируемый пост)
Да и нынешние некоторые возможности плюсов не использую: stl, 

Что то эти два высказывания между собой не вяжутся...  smile 
я так понимаю, что работаете на С++ в стиле С_с_классами ?.. а что ж тогда не на plain С ?



--------------------
PM MAIL WWW   Вверх
djamshud
Дата 21.4.2010, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



>проблема в том, что программа это решение  совокупности задач, и программисту приходится выбирать язык под наиболее ответственные задачи, а остальное решать как получится.

А вот и не правильно. Во-первых ничто не мешает программе быть написанной на нескольких языках, приспособленых к задачам. Во-вторых, если программист решает какие-от задачи "как получится" (как правило в лоб, как мне кажется), скорее всего ему просто было лень или не хватило ума представить решение в терминах того языка, на котором он ее решает.

>насчет неймспейсов,..

полностью согласен. Это причина по которой их нет и, думаю, не появится.

>Что то эти два высказывания между собой не вяжутся

Возможноsmile. Я обычно работаю (в том числе в рамках одного проекта) на С, С++ с неймспейсами, классами, (множественным) наследованием, RTTI и своих скриптах. По мере увелечения абстрактности и снижения требований к производительности (под)задачи выбирается следующий язык.

>а что ж тогда не на plain С ?

На plain C неудобно писать в объектно-ориентированном стиле, он для этого не особо предназначен.

Upd.
В плюсах еще шаблоны функций, классов и методов использую.

Это сообщение отредактировал(а) djamshud - 21.4.2010, 12:08


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1777 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.