Ответы пользователя по тегу C++
  • Есть ли сертификационные программы по языку C/C++?

    Ненужны никому сертификаты по C++, Вы что! Ваш уровень знаний проверит любой нормальный плюсовик без всяких бумажек обычными вопросами.

    Ну и Ваши цели очень туманны. Какие задачи Вы вообще собираетесь решать на нем? Как уже написали выше, тут нет целого стека технологий из коробки, как это есть, скажем, в C# (криптография, работа с БД, GUI и прочее). Изучаем синтаксис, стандартную библиотеку, а дальше отправляемся в свободное плавание. Это может быть Qt, boost, могут быть алгоритмы и структуры данных, может быть что-то еще.
    Ответ написан
  • Изучаю С++ самостоятельно, есть ли работа для Сишников?

    Бэкенд практически на любом серьезном проекте написан на плюсах (Яндекс, Гугл, ВКонтакте и т.д.). Связано это с тем, что:
    1) C++ быстрый;
    2) При прочих равных, программисты на плюсах куда чаще выдают качественный код, нежели их коллеги на мейстримовых языках (Java, C# или, упаси хоспади, пхп).
    3) обилие библиотек на все возможные случаи.

    Минусы: порог вхождения (как писали выше, не меньше двух лет понадобиться на то, чтобы в общих чертах понять, как писать вообще надо).

    С++ переживет тут нас всех, так что если в будущем хочется получать хорошую ЗП и работать с проектами посерьезнее уровня "сайт/магазин для какой-то компании", плюсы можно брать. Но сами плюсы не сильно интересны без хорошего понимания структур данных, алгоритмов и прочего необходимого для программиста высокого уровня.
    Ответ написан
  • Как справиться с неправильным нулем в C++?

    Для все простых типов в C++ есть верхние и нижние пределы, а также некоторая эпсилон окрестности, которые лежат в numeric_limits. В Вашем случае, если значение будет меньше эпсилон, можно считать числа равными. Например, сравнение вещественных переменных а и b будет выглядеть так:
    bool isSame( double a, double b)
    {
    return  std::fabs(a - b ) <= std::numeric_limits<double>::epsilon()
    }

    Если isSame истина, значит, числа равны, иначе нет.
    Ответ написан
  • Каков план личностного развития C++ программиста с нуля?

    Если человек мне на собеседовании скажет, что с C++ он перешел на C#/Java, и теперь все его головные боли иссякли, я никогда не найму его на должность выше обычного девелопера. Это в лучшем случае середняк, который никогда не будет писать изящных архитектурных решений, без особой тяги к знаниями и без капельки фанатизма.

    Есть такая шутка:
    есть два типа людей: те, кто уже выучил C++, и те, кто его никогда не выучат.

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

    Крайне не советую начинать изучение языка со Страуструпа — уснете. По моему опыту, новичкам крайне полезно читать книгу Стивена Прата "Язык программирования C++. Лекции и упражнения". Во-первых, это именно книга по C++, а не древний учебник по C с классами. Во-вторых, там уделено внимание стандарту C++11, фишки которого отлично приходят на замену древнему C++ (о которых еще пишут в учебниках, да).

    STL — обязательна для изучения. Без нее C++ — обычный C с классами.

    Изучению также подлежат такие библиотеки, как boost (сначала, что в ней вообще есть, а потом — как написать определенные случаи), poco, ACE. Крайне рекомендую обратить внимание на Qt — это клад в мире C++.
    Если интересна 3d-графика, можно посмотреть свободный графический движок Ogre3d.

    Потом, хорошим C++-программистам хорошо бы знать структуры данных. Пожалуй, на этот вопрос лучше всего ответит Роберт Седжвик в своих книгах, либо соответствующих курсах на Coursera. Это важно, т.к. C++ обычно используется как язык для решения ресурсоемких задач, а не построения "табличной" бизнес-логики.

    И на финал — один из самых сложных современных языков для изучения.
    Ответ написан
  • Установка сторонних библиотек в Makefile

    Как и комментатор выше, раз Вы не использовали системы сборки раньше и принципиальной позиции нет, лучше выбрать что-то типа CMake (крайне популярная среди C++ разработчиков) или waf (набирающая популярность система сборки, отличный вариант для знатоков Python).

    Для CMake все очень просто гуглится в интернетах. Например, Ваш случай.
    Ответ написан
  • QtCreator + ns-3?

    Линковщик ругается либо на отсутствующую dll, либо на отсутствие тела функции.
    Ответ написан
  • Кроссплатформенное приложение-сервис. На чем писать?

    Какая-то непонятная формулировка задачи.
    Если говорить о сервисах (службах) в Windows и демонах в Linux, то можно использовать либо QtService, либо mono-service на C#. Но что-то мне подсказывает, что эти решения не будут работать на iOS и Android (хотя ручаться не могу).
    Вообще, службы винды — достаточно специфичная штука, и если вдруг вы потом захотите через нее как-то обращаться к GUI, то ничего не выйдет.

    Можно взять какую-нибудь библиотеку (POCO, например) и написать на ней обычное приложение, которое будет работать в фоне.
    Ответ написан
  • Visual Studio with Qt always rebuilds solution?

    А как дела обстоят с генерируемыми moc файлами? Похоже, что они постоянно пересоздаются.
    Могу порекомендовать включить систему логирования и посмотреть, из-за чего (или какого файла, что скорее всего) происходит ребилд проекта.
    Ответ написан
  • Размер файла на диске используя iostream

    Старые реализации Майрософтовского STL (msvc 9.0 и младше) не поддерживали файлы большого объема. Чтобы посмотреть максимальный размер файла, с которым вы можете работать, выведите максимальную позицию смещения в потоке:
    std::numeric_limits<std::streamoff>::max()

    Получите те самые (2^32) / 2.

    В msvc 10.0 это поправили, и Вы увидите (2 ^ 64) / 2.
    На GCC также все будет отлично.
    Ответ написан
  • Python/PyQt vs C++/Qt для миграции с .NET. Что выбрать?

    Вообще, сам по себе Qt достаточно неповоротливый (из свежего на хабре — тест скорости работы с контейнерами). Но если вы программируете на C++, то без проблем можете написать проблемные участки с использованием того же boost'а, например. А вот если пишите на питоне, то мало того, что потеряете производительность на самом PyQt, так еще и хрен что сможете сделать (разве что писать проблемные участки на C++).

    Но после C# на C++ будет переходить тяжко, это факт.
    Ответ написан