а чем все-таки отличаются С и С++?

Тема в разделе "WASM.HEAP", создана пользователем dZentle_man, 23 окт 2010.

  1. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    dZentle_man
    Понятно... извините, что потревожил поток Ваших мыслей.
     
  2. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    ну я знающий пользователь питона. даже немного подпиливать и компилить его приходилось.

    питон написан на Си. и имеет Сишное АПИ.
    само собой это апи можно юзать в С++, по этому можно сказать что это апи можно юзать в С\С++

    но это не делает Си и С++ похожими языками.
    чтобы переписать апи питона на С++, надо было бы переписать 99% его (апи) кода.
     
  3. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    пожалуй пайтон - это один из наиболее показательных примеров отличий С++ от Си
    там есть функция Py_BuildValue
    которая принимает строку формата, и переменное число арументов - данных
    определяет типы парся эту строку, и формирует объект.

    в С++ этого бреда не было бы, там всё было бы сделано статически, без парсинга строк в рантайме
     
  4. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    GoldFinch
    Интересно как? Перегрузкой Py_BuildValue для всевозможных комбинаций типов аргументов что ли?
     
  5. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    dZentle_man
    По-моему признак ламерства не слеш, а придавать этому столько значения.
     
  6. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    green
    Через потоки :)
     
  7. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    KeSqueer
    Если я правильно понял мысль, то подобный подход нарушает инкапсуляцию, т.к. фиксирует инкрементальность формирования объекта, накладывая серьёзные ограничения на реализацию. А развязка в этом случае обойдётся дороже, чем парсинг строки. IMHO.
     
  8. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    green
    хоть перегрузкой запятой. важно то что в С++ есть нормальные средства для определения типа на этапе компиляции, а в Си с типами плохо.
     
  9. Nafanya

    Nafanya Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    581
    Вопрос возник по Си++,здесь нужен запас опыта за плечами, подскажите пожалуйста.

    Как в одной функции реализовать 2 противоречивые задачи:
    1) Удаление некоторого элемента из списка
    2) Возвращение этого же элемента - return(cluster)
    Вообщем вернуть функция должна то, что ей же надо удалить!

    Я реализовал это дело, с помощью временной переменной thecluster.
    Cluster Get_Cluster()
    {
    Cluster thecluster;
    list_iter=plist->begin();
    thecluster=*list_iter;
    list_iter=plist->erase(list_iter);
    return(thecluster);
    }

    Но не все так гладко. Замеры времени в QNX показывают:
    Get_Cluster() 1609 us
    {
    Get_Cluster()->Cluster::operator=(Cluster) 771 us
    Get_Cluster()->Cluster::Cluster(Cluster const&) 403 us
    }

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

    Какие еще варианты есть с меньшем временем? Функция должна возвращать то, что она удаляет.
     
  10. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Nafanya
    Вы вначале скажите, для чего нужно удалять то, что не нужно удалять?
     
  11. dZentle_man

    dZentle_man New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2008
    Сообщения:
    414
    Для таких вопросов есть специальные ветки форума. Че за привычка мешать мух с котлетами?


    Вы увидели что хотели увидеть. На вас я не наезжал.
     
  12. Nafanya

    Nafanya Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    581
    Booster
    <<Вы вначале скажите, для чего нужно удалять то, что не нужно удалять?

    Методом Get_Cluster надо забрать Кластер из списка и удалить его оттуда. Если его не удалять, то при следующем запросе Get_Cluster вернет его снова, так и будет один и тот же кластер 1000 раз на выход выдаваться. И ещё - если не удалять кластера - переполниться память, через определенное время.

    Задача-то реального времени. Получили отсчет-> Сформировали клатер->Выдали кластер на выход и удалили.
     
  13. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    dZentle_man
    Ну вот чего Вы докопались до питоньщиков? Хорошо, объясню свою точку зрения. К примеру недавно на неком форе поднималась тема, почему мол С++ считается низкоуровневым языком, хотя на самом деле он таковым не является. Всё относительно, в некотором смысле С и С++ это совершенно разные языки, а в некотором С++ является надмножеством С. Обе точки зрения имеют право на жизнь, не просто же так стараются поддерживать совместимость этих языков. Никто не запрещает использовать С++ так же как и С. Так что питоньщики отразили обе эти точки зрения и всё.
     
  14. dZentle_man

    dZentle_man New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2008
    Сообщения:
    414
    Вы может быть удивитесь, но все, о чем вы написали в этом посте мне известно, и это только одна из точек зрения, которые я вижу.
     
  15. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Nafanya
    Если вам нужно удалять элемент списка, так и удаляйте элемент. Зачем удалять объект находящийся в этом элементе? А уж после того как объект станет никому не нужен, то тогда и удаляйте его. По-моему Вы сами придумываете себе сложности.
     
  16. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    dZentle_man
    Зачем тогда троллить? По другому не возможно назвать докапывания до сферических питоньщиков в вакууме.
     
  17. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    dZentle_man
    Я увидел, что мой пост впустую, т.к. цель темы - отнюдь не технические отличия С и С++, а желание посудачить о профессионализме/ламерстве и знаках препинания.
     
  18. dZentle_man

    dZentle_man New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2008
    Сообщения:
    414
    Зачем называть троллингом все, что не укладывается в собственное понимание?


    А вы думали в хипе что обсуждают?) Не, ну не только это конечно, но и это тоже. Я хотел обсудить кратко и по сути, но разве ж тут кого вразумишь...)
     
  19. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    dZentle_man
    Понимание слеша и запятой? Почитайте Страуструпа что-ли, а не слушайте мнения псевдознатоков.
     
  20. dZentle_man

    dZentle_man New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2008
    Сообщения:
    414
    Вот и у меня не очень уложилось понимание почему никогда нельзя ставить слеша, и в тот момент я и создал тему. Теперь уложилось, я тоже считаю что стоит ставить запятую, хотя для безусловного рефлекса моего представления еще не хватает и бессознательно могу поставить слеш. Ну ладно я там, я же и не выделываюсь) А вот прославленные пейтонщики - им уже не простительно) Ваше мнение уже слышал - вы считаете что иногда можно, ну а у меня и нет цели обращения в свою веру.


    Как же ж, читал) Но одного страуструпа мало, знаете ли. Нужно еще стандарт читать, смотреть на работу компилятора, потому что не все нюансы документированы.