Задать вопрос
Ответы пользователя по тегу C++
  • Можно ли поменять тип у Си++ с помощю (int)num?

    TrueBers
    @TrueBers
    Гуглю за еду
    Забудьте Си, если пишете на плюсах! Не нужно бульдога с носорогом смешивать. Это абсолютно разные языки, пусть даже выглядят очень похоже.

    Работать то оно будет, но совсем не безопасно.

    Почитайте про 4 вида кастов: static_cast, const_cast, dynamic_cast и reinterpre... и используйте только их (для начала, желательно, только первый из них).

    Слишком длинные и труднозапоминаемые операторы? А это сделано специально, чтобы мотивировать разработчика не использовать явные касты вообще. Си++ изначально задумывает гибкую работу с типами, предпочитая неявные преобразования и сводя к минимуму явные. Лучше лишний раз перегрузить функцию с нужным типом, и сделать проверки в реализации этой функции, чем давать пользователю возможность что-то сломать неверным кастом.
    Ответ написан
    Комментировать
  • Когда заголовок iostream заменяет другие заголовки, например, string?

    TrueBers
    @TrueBers
    Гуглю за еду
    Однозначно нужно подключать всё как положено. Совсем не факт, что какой-то другой компилятор будет у себя подключать где-то этот самый string.h. Точно так же может смениться реализация в другой версии, и всё поломается.

    По сути, работает оно по чистой случайности. Всегда подключайте необходимый заголовок. Проще всего смотреть на сайте C++ Reference. Там для каждого класса есть вверху строка Defined in header <...>. Вот этот хедер и подключайте всегда, будет работать в 99% компиляторов. А чтобы не замедлялась скорость сборки, добавляйте часто используемые заголовки в precompiled header.
    Ответ написан
    Комментировать
  • Стоит ли использовать, как стартовое IDE для с++ code::blocks?

    TrueBers
    @TrueBers
    Гуглю за еду
    На самом деле, если есть знания, кодить можно где угодно. На прошлой работе, когда пришёл, рабочей машиной был одноядерный селерон 1.6ГГц, кодил в юниксовом терминале в vim'е. Отлаживал и анализировал коры в gdb. Купили новую машину, поставил гуй, продолжил кодить в vim.

    А для учёбы, отвечу так -- из лучших IDE для плюсов на данный момент:
    • Если нет ограничений в виде Win-only, крайне рекомендую связку Clion+clang. У Clion'а есть бесплатная лицензия для студентов. Clang поддерживает полностью C++14, и постоянно запиливают C++17. Плюсом будут всякие санитайзеры и прочие полезные штуки, которые приучают к безопасному коду. А ещё clang может похвастаться очень информативными и понятными сообщениями об ошибках компиляции, в отличие от той же Вижуал Студии, где надо быть шаманом, чтобы понять, что у тебя не верно. Это ой как облегчает обучение.
      Всё это для Линукса. Для винды clang пока не сильно фичастый, вместо него ставить Mingw. Который так же поддерживает C++14.
    • Для Win-only бесплатная Visual Studio 2015 Community RC + ReSharper 9.1, который так же имеет бесплатную лицензию для студентов.


    Описанный выше QtCreator не рекомендую, только если не собираетесь учить сам Qt. Функций чуть больше, чем в блокноте, а падает и глючит с завидной регулярностью.
    Ответ написан
    Комментировать
  • Как правильно написать MutexLocker?

    TrueBers
    @TrueBers
    Гуглю за еду
    А чем не угодил std::lock_guard?
    Ответ написан
  • Проблема с выполнением заинжекченого DLL?

    TrueBers
    @TrueBers
    Гуглю за еду
    Не знаю, что за бредовый код вы привели, но типичной ошибкой немедленной выгрузки DLL после загрузки является забывчивость брякнуть case-условие после выборки DLL_PROCESS_ATTACH или DLL_THREAD_ATTACH::
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    	break;
    case DLL_THREAD_ATTACH:
    	break;
    case DLL_THREAD_DETACH:
    	break;
    case DLL_PROCESS_DETACH:
    	break;
    }
    Ответ написан
  • Что означает эта ошибка в С++ ?

    TrueBers
    @TrueBers
    Гуглю за еду
    this=optimized out, this=optimized out

    Есть возможность выключить -O и включить -g?
    Намного больше будет информации вместо optimized out.
    Ответ написан
    1 комментарий