Ответы пользователя по тегу C++
  • Как затереть ссылку возврата?

    @makaleks
    Смотрите указатели на функции.
    Если у вас есть указатель на функцию, то фактически, есть точка отсчёта для памяти программы. В принципе, для исследования этого достаточно. Для обхода памяти лучше использовать указатель на int - если компилируете под 32 бита, то вроде столько должен занимать размер стека. И конечно, 16-ричный вывод для удобства (одинаковое кол-во символов для любого числа). Да, и не пытайтесь вносить изменения - int const * в помощь!)
    Попробуйте посмотреть ассемблерный листинг (опция в компиляторе), может получится вывести, какая команда в каком адресе лежит. Вы же поймёте значение команд call и ret?)
    Ответ написан
  • Как распарсить строку без обратной польской нотации?

    @makaleks
    Принципиально другого способа не знаю, но, если очень надо, с рекурсией мучиться можно. Будут ошибки, сложности добавления новых операторов и прочее.
    Сам на заре ещё самообучения пилил такое дело. Тот ещё ужас... Хотите подсмотреть - ловите .h, но это фактически Си и вообще я ничего не знал. Хотя поддерживает аргументы (через латинские буквы), функции sin и cos, а также скобки и модули. Ни пробелов, ни табуляции.

    Надеюсь, увидев этот ужас, Вы поймёте, что лучше разобрать обратную польскую.
    Лучше разобрать, правда.
    Ответ написан
  • Microsoft Visual Studio 2013, как перейти от простого вывода в консоли до полноценных программ?

    @makaleks
    Взять и начать)
    Графика в плюсах платформо-зависимая. Хотите, чтобы ваша графика работала без изменений кода в Windows, Linux, MacOS...? Ставьте кроссплатформенные библиотеки. Не хотите ничего ставить? Работайте с формами Windows. У меня 2015-я бесплатная, и там я тоже не вижу форм. Зато есть кое-что получше - универсальные приложения Windows. Посмотрите, авось и Вас найдётся. Хотя действительно ли Вам нужно программирование, когда Вы работаете с конструктором?
    Из кроссплатформенных Graphic User Interfase (GUI) библиотек особо популярны GTK+ и QT. Это мощные библиотеки с огромным сообществом, благодаря чему можно будет найти ответы на очень многие вопросы.

    А если вы чисто для продолжения обучения хотите повозиться с чем-то низкоуровневым (точки, полигоны, матрицы, т.д. и никакого текста), то я в своё время возился с OpenGL, который у Вас уже установлен. Понадобится только кроссплатформенная обёртка исключительно для создания графического окна и приёма событий клавы/мышки. Здесь очень посоветую glfw, в отличие от заброшенного glut. Будет вам отличая html документация по glfw, а RedBook поможет с OpenGL. Но это только для обучения, хотя я и дошёл до того, что написал свой удобный костыль для вывода шрифтов через FreeType. На винде стоит версия 1.1, хотя давно уже OpenGL перешагнул 4-ю версию и очень сильно изменился с тех давних пор - а Microsoft вместо этого обновляет свой DirectX для Windows.

    В общем, делайте выбор, раз хотите начать)

    Удачи
    Ответ написан
    Комментировать
  • Как написать приложение с раcписанием?

    @makaleks
    Больно серьёзная задача при таких знаниях C++. При написании GUI не обойтись без классов, Qt Вам уже посоветовали. В этой же библиотеке есть способы работать с сетью и не только. Но ВУЗы обычно (не встречал) не предоставляют API для работы со своим сайтом, а посему есть разные варианты, и парсинг - не самый лучший из них для Вас. Поскольку расписание на то и расписание, чтобы обновляться редко, то можно просто забить это расписание "ручками" (например на сервере для таких обновлений), а затем и обрабатывать.

    Но не в этом суть. Судя по
    Я лишь знаю С++ и в основном это работа с массивами
    возникает ощущение, что нет навыка написания программ масштаба Вами предложенного. Надеюсь не будет новостью необходимость делать акцент на раздельную компиляцию (чтобы на каждый запуск не уходило секунд 10), максимальное разделение на функции и проверка на корректность входных параметров (что позволит написать качественный код и использовать его в других проектах). Ну и разумеется знание правил оформления для максимального комфорта дебага.

    Но и это не всё. Всё это похоже на перспективный долгострой, а потому советую Вам в первую очередь сделать прототип - максимально урезанную по функционалу версию из качественного кода, с большой оглядкой на расширение. Нужно планирование, коим здесь никак нельзя пренебрегать.

    А вообще стоит обзавестись контактом, у которого можно было бы уточнять подобные вопросы.

    1: да, разумеется на C++ можно писать и не такое, хотя практически полный контроль над каждой оперцией и обещает длительный цикл разработки (порой для прототипов используют вообще другой язык программирования, полный абстракций, например Python). По Qt советую для начала книгу
    "Qt 4.8. Профессиональное программирование на C++" (М. Шлее)
    И надеюсь, что у Вас есть под рукой что-то вроде
    "Полный справочник по C++" (Г. Шилдт)

    Андроиду действительно больше подходит Java, но и для C++ существуют способы написания под мобильные платформы (не только Android).

    Удачи
    Ответ написан
    Комментировать
  • Как Java программисту подшутить над C++ программистом?

    @makaleks
    Найти в начале main() (или в другом видном месте) какое нибудь число и подписаться целочисленными константами:
    unsigned i='Hell'+'o, '+'C++'+'prog'+'ger!' - 552576319;//==0
    //...
    for(i; i < 5; i++)
    {
    //...
    }
    Ответ написан
    Комментировать
  • Алгоритм связанный с графами?

    @makaleks
    Раз этот огромный граф хранится на диске и вас беспокоит память для std::list, то можно, например, сохранить на диск (или попробовать в память) матрицу смежности, для которой пишутся базовые алгоритмы. Конечно, не совсем ясна задача, но это вариант "в лоб", для базовых вещей.
    Ответ написан
    Комментировать