Ответы пользователя по тегу C++
  • Чем заменить SFML?

    Qubc
    @Qubc
    Ненавижу полисемию.
    Почему заброшена? Когда заброшена? Качаете исходники, читаете тутор (он плохо написан для новичка, но есть много видосов на ютубе) и собираете под любую версию компилятора. Нужен cmake, с его помощью генерируете проект, компилируете библиотеки, потом создаёте свой проект и подключаете туда скомпилированные библиотеки, всё. И под gcc, и под все версии msvc всё спокойно собирается благодаря тому, что создатели использовали cmake. Получаете .dll, .lib и пачку .h, всё. В первый раз делается за неделю (ну, может, я тупенький), а второй - за 15 минут. При таком подходе вы научаетесь работать с библиотеками и получаете полный доступ к исходникам самого sfml. Круто же. Не знаю, как оно в реальной разработке - но для обучения sfml очень крутой проект потому что написан приятно и имеет аккуратную документацию.
    Ответ написан
    Комментировать
  • Корректно ли в C++ называть стек статической памятью?

    Qubc
    @Qubc
    Ненавижу полисемию.
    643057aba3ff2477592241.png
    RAM - это RAM. static - это ключевое слово, которое заставляет компилятор что-то сделать. Стек - структура данных. Структура данных - это данные и способ взаимодействия с ними. Например, OS использует стек для размещения программ в памяти, а компилятор использует стек для организации выделения памяти для переменных и вызовов функций.
    Зачем используют понятия "статическая память" и "автоматическая" - я не знаю. На мой (возможно, ошибочный взгляд) это лишь порождает запутанность. Особенно, в Си и С++, где анализ static зависит от контекста... В принципе, можно вообще запросить огромный кусок памяти с помощью static и размещать все данные только там. Сделать какой-нибудь указатель, имитирующий SP и размещать данные в таком же стиле, как это делает OS и компилятор.
    Ответ написан
    Комментировать
  • Как преобразовывать тип данных?

    Qubc
    @Qubc
    Ненавижу полисемию.
    int divi = static_cast<float>(a) / b;
    a явно приводится к float, b неявно приводится к float, результат помещается во временный объектс типом float, временный объектнеявно преобразуется в intи сохраняется в divi.
    Исходный код желательно писать в теле вопроса и очищать его от постороннего кода.
    Ответ написан
  • Почему переопределение метода без virtual -- это не переопределение?

    Qubc
    @Qubc
    Ненавижу полисемию.
    В английском есть redefinition и есть overriding.
    struct Base {
        void method (void) { }
        virtual methodV (void) { }
    };
    struct Derived : public Base {
        void method (void) { } // redefinition
        virtual methodV (void) { } // overriding // virtual можно здесь не писать.
    };
    Ответ написан
    Комментировать
  • Где изучать STL и Boost?

    Qubc
    @Qubc
    Ненавижу полисемию.
    ИМХО: thinking in c++ volume 2 и geekforgeeks.org (отсюда можно узнать, что и как (примерно) из общеизвестных алгоритмов реализовано в stl). И параллельно с этим Лафоре или Грокаем алгоритмы (отсюда можно узнать про всевозможные алгоритмы и их суть в общем виде).
    Ответ написан
    Комментировать