• Алгоритм Штрассена. Оптимизация

    @BrainHacker
    Блин, у вас столько динамического выделения памяти, что аж старшно становиться! Попробуйте хотя бы выделять память большой пачкой. А лучше вообще на старте работы алгоритма выделить всю необходимую память. Один раз.
    Ответ написан
    Комментировать
  • C++ ODBC cross-platform?

    Gorthauer87
    @Gorthauer87
    Программист
    wxWidgets может и легковеснее, но работают они заметно тормознее, чем Qt, и почти не развиваются. Не вижу вообще смысла их использовать.
    Ответ написан
    3 комментария
  • Framework Qt 4.7. Проблема при формировании указателей виртуальной таблицы?

    bfDeveloper
    @bfDeveloper
    В коде есть нарушение двух правил наследования от QObject:
    1) Макрос Q_OBJECT надо писать всегда. Допускается использование без него, но это только если вы в этом уверенны на 100% и понимаете, как это работает. В официальной доке по Qt настоятельно рекомендуется писать этот макрос всегда, когда наследуете QObject.
    2) Конструктор наследника QObject должен иметь вид:
    explicit MyObject(..., QObject* parent=0);
    Это требуется для реализации объектных иерархий.

    Кроме того, в конструкторах ваших классов нет вызова конструктора предка, т.е QObject(parent).

    Не уверен, что что-то из этого приводит к вашей ошибке, однако так, как написано у вас, писать точно не стоит.

    Кстати, бывает, что возникают проблемы, когда класс, который не был наследником QObject в процессе разработки им становится. QtCreator не всегда соображает правильно и не запускает qmake после этих исправлений. Попробуйте запустить qmake руками и потом пересобрать проект.
    Ответ написан
    4 комментария
  • Framework Qt 4.7. Проблема при формировании указателей виртуальной таблицы?

    Gorthauer87
    @Gorthauer87
    Программист
    >MyClass:: MyClass (QApplication *App) // Конструктор

    Мать моя женщина! qapp же синглтон! Friend классы в данном конкретном случае вообще не нужны и скорее вредны.И еще советую курить на тему moc'а, в main.cpp если очень хочется обьявить класс зависимый от QObject файла, то нужно писать в конце #include «moc_main.cxx» или же #include «main.moc»
    И вообще, весь код совершенно не в духе Qt написан, а каким-то странным образом. Лучше почитать примеры кутишные для начала и в доках соглашения о кодировании!
    Ответ написан
    1 комментарий
  • Как правильно писать "плагинное" приложение?

    Gorthauer87
    @Gorthauer87
    Программист
    Создаем либу, которая предоставляет общее sdk, обычно это набор абстрактных классов. Создаем класс Plugin, который содержит в себе необходимые точки входа, обычно это init для того, чтобы плагин сказал о том, что он умеет, load для того, чтобы плагин начал выполнять возложенные на него фичи и unload, для выгрузки. Далее делаем менеджер этих самых плагинов, который имеет в себе указатели на все доступные плагины, он уже разруливает что загружать, а что нет, а также разруливает всякие штуки наподобии зависимостей между плагинами.
    Работать такая связка будет столь же быстро, как и монолитное приложение, зато каждый плагин будет являться лишь кирпичиком и можно будет гораздо проще отлаживать. Такого рода незначительно влияет на скорость загрузки приложения (необходимо таки делать некоторые лишние телодвижения в рантайме) и незначительно на объем потребляемой памяти. Можно организовать обмен эвентами между плагинами, но гораздо проще и быстрее сделать плагины реализациями некоторых интерфейсов, а обмен событиями использовать лишь в небольшой части плагинов, где это реально нужно.
    Ответ написан
    4 комментария