Задать вопрос
  • Можно ли описать template от метода класса?

    bogolt
    @bogolt
    Передать имя функции как аргумент нельзя.
    Можно это решить через макросы, например так
    #define F(a, b, func) a->func(b)

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

    bogolt
    @bogolt
    Возможно сделать на Parse
    Ответ написан
    Комментировать
  • Что использовать при разработке графического редактора на С++/Qt?

    bogolt
    @bogolt
    По-моему Qt хороший выбор для подобной программы. И не думаю, что вам имеет смысл отказываться от QGraphicsScene только потому что иначе задача вам кажется слишком простой. Я скорее предположу, что на каком-то этапе работы возможностей QGraphicsScene может не хватить для поставленных задач ( я однажды столкнулся с подобной проблемой, у ее дедушки в Qt3 ), и вот тогда действительно придется весь код писать ручками. Но изобретать себе работу, отказываясь от уже существующих классов - имхо неправильно.
    Поймите меня правильно - научится создавать подобные классы самому - полезное умение. Но если вы вначале научитесь использовать существующие, то затем, когда решитесь создать нечто свое уже будете обладать опытом использования этих классов, а так же примерным пониманием того что в них хорошо, а что не очень.
    На мой взгляд выбранная вами задача не настолько простая как может показаться, хотя это конечно сильно зависит от количества фич которые вы хотите реализовать. Но тем не менее я бы предположил вам вначале создать работающую программу, реализовав таким образом свою цель, а уже потом если сохранится желание переписывать внутренности на собственные графические контейнеры.
    Ответ написан
    Комментировать
  • Какой учебник для изучения С++ с нуля в данный момент актуален ?

    bogolt
    @bogolt
    Лучше все же начать с чистого Си. Почти все книги по Си++ подразумевают что вы уже знакомы с языком Си, поэтому множество базовых, совпадающих с си вещей (вроде циклов, условных операторов и тд ) в учебниках по плюсам не объясняются.
    Да и вообще - разобраться на базовом уровне с голым Си куда проще чем сделать тоже самое с плюсами. А вот после этого вполне можно открывать любой учебник по си++ ( Рекомендую Брюса Эккеля, хотя сейчас в связи с выходом нового стандартна он уже немного устарел, впрочем не думаю что уже есть хорошие учебники с учетом этого самого нового стандарта ).
    Ответ написан
  • Как добиться нужного fps?

    bogolt
    @bogolt
    Если хотите понизить фпс ( я так понял по вопросу что хотите вы именно этого ), то после вычислений времени текущего цикла, добавляйте sleep() на недостающее количество миллисекунд.
    Например вам нужно чтобы 1 цикл выполнялся за 30 мс, а он выполнлился за 20, значит нужно поспать еще 10 до выхода из цикла.
    Ответ написан
    3 комментария
  • Где найти интересные задачи по с++ разного уровня?

    bogolt
    @bogolt
    Не знаю что такое "озов" похоже на город какой-то, но тогда неясно отчего с маленькой буквы. Говорят в древности на Руси алфавит ( ну или буквица ) начинался с буквы Аз, откуда вероятно и пошли азы...

    По сути вопроса - любая программа длиннее тысячи строк будет представлять собой вполне себе задачу среднего уровня. Поставьте себе задачу и реализуйте ее на си++. Например напишите свой http/ftp сервер или клиент. Создайте простую игру, или удобное приложение.

    Можно конечно искать задачи где нужно "с помощью указателей" сделать что-либо, или "написать иерархию классов с виртуальными функциями" но имхо это полная ерунда. Она может помочь разве что закрепить синтаксис языка, но не дает понимания того зачем конкретная фича языка нужна.
    А вот создание собственной объемной программы - такое понимание дает в полной мере. Когда вы напишите 20й класс похожий на остальные, то зададитесь вопросом как это можно сделать проще, перечитаете учебник языка и поймете зачем нужны например шаблоны или виртуальные функции.
    Если до написания программы ( а лучше во время ) вы будете штудировать учебник языка - будет совсем хорошо.
    Ответ написан
    Комментировать
  • Стоит ли использовать малоизвестные технологии при разработке, чтобы "привязать" к себе заказчика?

    bogolt
    @bogolt
    Еще один минус - работая по вашей схеме - заказчики которые не могут отказаться от исполнителя вы в конце начнете скатываться в лень, скуку, необоснованно завышенные потребности при полном нежелании ради них напрягаться. Так как клиент есть, никуда не денется, а значит можно себе позволить что угодно.
    В финале - у клиента заканчиваются деньги или проект, и вы остаетесь со своими амбициями, без знаний актуальных на рынке языков, с опытом работы в никому не нужной среде/языке, и главное уже привыкли что вам все дают за красивые глаза. В результате только себя самого и подставили.
    Ответ написан
    Комментировать
  • Как обновить приложение в playgoogle после потери сертификатов?

    bogolt
    @bogolt
    Оффтоп.
    В следующий раз когда слелит система не спешите форматировать диск, а вначале загрузитесь с флешки, или с другой системы и вытащите все необходимые данные, которые могут понадобится.
    А вообще лучше всего переносить все важные данные на отдельный диск ( не С ) включая папку Мои Документы ( да это тоже возможно ). Тогда и содержимое рабочих столов, и многочисленные настройки разных програм включая сохраненные пароли ( если они правильно написаны и хранят свои данные в AppData а не в реестре системы ) будут сохранены.
    Ответ написан
    Комментировать
  • Какими сопутствующими технологиями необходимо сегодня владеть, чтобы работать удаленным С++ программистом?

    bogolt
    @bogolt
    Если с десктопом глухо ( хотя мне периодически попадаются и там предложения ) то можно попробовать переквалифицироваться в разработку для мобильных - obj-c или java или си++ для игровых проектов.
    Ответ написан
    Комментировать
  • Зачем в современных проектах все еще используются макросы?

    bogolt
    @bogolt
    Макросы нужны там где нужно во время компиляции программы генерировать код. Функции или даже шаблоны для этого не подходят.
    Например вы хотите логгер, который бы писал в каком файле, и на какой строке произошла ошибка, вы пишите код

    cout << __FILE__ << __LINE__ << "error message";

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

    Итак теперь вы тяжело вздохнув, и закрыв портретик Страуструпа шторкой ( чтобы не видел как вы предаетесь адскому макросостроению ) пишите макрос
    #define LOG(x) std::cout << __FILE__ << __LINE__ << x << std::endl;


    Теперь где угодно можно писать
    LOG("this is error number " << errno);
    и все будет работать как и было запланировано.

    Еще из полезных свойств макросов - улучшать чужой плохой код. Если у вас есть много переменных, или переменных имена у которых почти совпадают с именами функций и вам нужно сделать этот код умнее, вы пользуетесь макросами, склеиваете строки через ## или преобразовываете переменную в строку через #
    Это довольно мощные инструменты ( пусть до лисповских максросов им далеко ) которые реально позволяют улучшить код и/или избежать кучу повторений одного и того же блока кода.
    Ответ написан
    Комментировать
  • Что лучше: python 2 или 3?

    bogolt
    @bogolt
    А вам нужен абстрактный питон или питон и какие-то особые библиотеки? Не смотря на то что питон 3 вышел довольно давно, до сих пор не все библиотеки работает под ним, и для многих из них придется пользоваться второй версией.
    Ответ написан
    Комментировать
  • Удобно ли будет читать техническую литературу на PocketBook 515?

    bogolt
    @bogolt
    Для себя решил что e-ink читалка хороша для последовательного, спокойного чтения - например художественной литературы. Если же в книге есть графики, листинги кода, схемы или же вам нужно постоянно пролистывать ее туда-сюда - электронные чернила не удобны. Скорость работы, удобство управления начинают тут играть важную роль, и как следствие проще пересесть за комп или взять обычный (ios/android) планшет.
    Эксперименты ставил на PocketBook 902.
    Ответ написан
    Комментировать
  • Какой язык программирования/направление выбрать? Смена профессии

    bogolt
    @bogolt
    > Стоит ли изучать php/js/ruby/python или лучше java/c?
    Определитесь со сферой ваших интересов, и под нее уже выбирайте языки. Работу можно найти имхо под любой язык/технологию, поэтому в ваших интересах чтобы этот язык/технология наилучшим образом удовлетворяла вашим личным предпочтениям. Это в первую очередь скажется на эффективности вашей работы, да и больше положительных ощущений никому не мешали.
    Ответ написан
    5 комментариев
  • Почему программа падает? Где ошибка в коде?

    bogolt
    @bogolt
    Падет оттого что выкладываете кусок кода, по которому ничего нельзя сказать. Есть такое понятие - минимальный рабочий пример. Он должен компилироваться, в идеале быть представленным одним файлом, в самом большом идеале - снабженным Makefile или простой инструкцией по сборке.
    Также подразумевается что вы уже:
    1. Пытались сами отладить программу в отладчике
    2. Навтыкали логов через одну строку кода, чтобы точно локализовать место падения, но так и не поняли почему именно случается падение.

    Обычно на реализации второго пункта этой программы человек сам понимает причины крэша. В противном случае - как я уже писал пишите минимальный рабочий пример и выкладывайте. А то телепаты берут дорого, а отнимать время подобными недооформленными вопросами у других хороших людей, готовых помогать это банальное хамство.
    Ответ написан
    6 комментариев
  • Структура SQLite базы данных в Android-приложении

    bogolt
    @bogolt
    таблица Оценка - поля ид-юзера, оценка, дата-выставления
    таблица Посещаемость - поля ид-юзера, дата-посещения ( или дата-прогула )

    Но вообще вопрос капитанский, в любом учебнике по sql полно подобных примеров
    Ответ написан
  • С++.Работа с сокетами?

    bogolt
    @bogolt
    По умолчанию все операции с сокетами - блокирующие. Это означает что пока операция не выполнится код не пойдет дальше.
    Методов решения этой проблемы много:
    - использовать неблокирующие сокеты
    - использовать неблокирующий вызов select
    - выделить все в отдельный поток ( плохой метод, потом замучаетесь разбираться почему крэшится ).

    Советую почитать руководство по сетевому программированию, ну или хотя бы посмотреть на код клиента и сервера. beej.us/guide/bgnet/output/html/multipage/index.html
    Ответ написан
    Комментировать
  • Регулярные выражения, Поиск всех видов чисел в строке, CString

    bogolt
    @bogolt
    1. Во всех адекватных функциях поиска учтена возможность начала поиска с определенной позиции.

    2. Как ваш алгоритм выудит число 0xa11 ?

    3. Не понимаю зачем тут нужны регулярные выражения. Все имхо можно вполне сделать простым алгоритмом:
    Разбить на строки
    Каждую строку разбить на отдельные слова ( делить по пробелам, знакам препинания ( исключая точку которая может быть разделителем дробных чисел ).
    Проверить каждое слово на символы из которых оно состоит - это вы уже реализовали.
    Ответ написан
  • Почему не работает перегрузка оператора?

    bogolt
    @bogolt
    Шаблонные классы и методы нельзя определять в cpp файлах. Перенесите весь шаблонный код в заголовочный файл и все заработает.
    Ответ написан
  • Linux - Как записать строку в другой кодировке в объект string в c++?

    bogolt
    @bogolt
    Сталкивался с подобной проблемой - скорее всего у вас некорректно происходит запись в utf8 строку. Вместо "name" у вас там "0n0a0m0e" то есть под каждый символ идет 2 байта вместо одного.
    Для решения - возьмите любую библиотеку по работе с utf8-16 и убедитесь что обе строки в одной кодировке. Как простейший вариант, если мое предположение с нулями подтвердится можете просто руками их оттуда выбросить ( если у вас конечно гарантированно везде только ascii ).
    Ответ написан
    Комментировать
  • Возможно ли плодотворно заниматься фрилансом, разрабатывая не для web?

    bogolt
    @bogolt
    Как вариант можно найти удаленную работу. У нее есть почти все преимущества фриланса ( ну кроме разве что пункта - хочу работаю, хочу дурью маюсь ), зато не нужно париться и искать заказы.
    Ответ написан
    Комментировать