Задать вопрос
Ответы пользователя по тегу C++
  • Для чего нужны директивы препроцессора на языке С и С++?

    gecube
    @gecube
    системный администратор, программист... все дела..
    О, это сложно объяснить. Но кратко - Си в изначальном варианте не поддерживал условную компиляцию. Ты не мог написать один файл, который компилировался на любой поддерживаемой платформе одинаково. Пришлось бы держать отдельную копию исходного файла под каждую целевую платформу. Поэтому возникла идея языка шаблонов или точнее - метапрограммирования, что реализуется препроцессором Си. Он берет исходный файл и по определённым правилам согласно своих директив превращает его в то, что пойдет на вход компилятору. И директива `#include` позволила подключать библиотеки кодов. А потом препроцессор исторически перекочевал в С++ из необходимости обеспечения совместимости.

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

    gecube
    @gecube
    системный администратор, программист... все дела..
    Я вообще думаю, что с++ не очень удачный язык для обучения с нуля. Все принципы ООП и функционального программирования будут спрятаны за сложностью самого синтаксиса языка. Я уж не говорю, что наштамповали кучу стандартов и язык за последние 10 лет очень изменился, а ещё есть очень большая разница с каким фреймворком его использовать. Так с++ + mfc это совсем не то же, что и c++/qt или .netовский с++.
    Рекомендую изучить основные концепции программирования на более лёгких языках (тот же python) и потом уже по необходимости переходить на кресты.
    Касательно литературы полностью поддержу ответ коллеги выше. Страуструповская книга будет очень тяжела для чтения. Она скорее как она справочник хороша.
    Ответ написан
  • Должен ли я компилировать .cpp для репозитория на GitHub?

    gecube
    @gecube
    системный администратор, программист... все дела..
    В репозитории должны быть только исходные коды.
    Если хотите делиться бинарниками, то для этого есть такая штука как GitHub releases.
    Ответ написан
    Комментировать