Ответы пользователя по тегу C++
  • Где место звездочки?

    wholeman
    @wholeman
    Первый вариант: для меня звёздочка — часть названия типа.
    Ответ написан
    Комментировать
  • Изучение языка под мобильные разработки с дальнейшей перспективой?

    wholeman
    @wholeman
    Язык зависит от платформы и желания писать именно «родные» приложения. Официальные языки:
    WP7 и прочие Windows (Microsoft) — C# и .net
    Android (Google) — Java
    iOS (Apple) — Objective C
    Symbian, Maemo, MeeGo (Nokia & Intel) — C++ и Qt.

    Первые два — не совсем «родные», поскольку компилируются в байт-код, а не команды процессора.
    Objective C — только Apple.
    C++ и Qt позволяют разработывать приложения не только для мобильных устройств, но и для настольных Windows и Linux. Кстати, есть неофициальный порт Qt для Android и iOS, правда, пока он недоделан и вообще вряд ли такое приложение пройдёт в «сторы».
    Очень удобно, когда есть возможность использовать один и тот же фреймворк и на десктопе и на мобильном устройстве. Осваивать значительно легче.
    Ответ написан
    2 комментария
  • Разобраться со слабыми сторонами C++?

    wholeman
    @wholeman
    > множественное наследование сложно использовать
    Простой пhимер: А имеет два подкласса: B и C, от них происходит D.
    Если родительские классы имеют общего предка (A), то в потомке (D) будет несколько экземпляров этого предка. С каким будут работать унаследованные методы в общем случае неизвестно. При приведении указателя D* к A* также непонятно, на что он будет указывать.
    Это можно исправить, объявив наследование от A, как virtual в B и C, но работать это будет значительно медленнее и инициализацию такого предка придётся делать в каждом потомке (B, C, D и далее по иерархии), а не только в непосредственных B и C. Это не только неудобно, но и не вписывается в ООП. Кроме того, если A,B и C объявлены в сторонней библиотеке, такая операция вообще невозможна.
    > перегрузка через virtual неудобна
    Не могу обосновать. Я не считаю её неудобной. Мне всегда нравилось.
    > исключения трудно реализовать в компиляторе, поэтому если и речь идет о многоплатформенности, то лучше о них забыть
    Забыть о них не получится, т.к. они используются в языке (оператор new, например, их использует). Другое дело, что мне, например, они неудобны, но я вообще склонен избегать выходов управления и середины функции, как, извините за грубость, оператора goto. В ряде случаев, впрочем, использую.
    > шаблоны — не самый простой способ генеративного программирования
    По моему, он достаточно прост. Может быть, даже слишком: с помощью шаблонов очень легко раздуть программу массой однотипного кода.
    Ответ написан
    1 комментарий