Глобальная переменная в QT, как к?

Основы:

  1. не пытаются разместить сайты большого объема в Windows, если Вы не верны гуру Windows. Это может быть сделано, но это - время по сравнению с проблемой стоимости.
  2. Использование статическое содержание (т.е. никакие запросы базы данных) везде Вы можете.
  3. Узнают о заголовках управления кэша и используют их правильно для изображений и других статических активов.
  4. По крайней мере, используйте Apache, но если Вы можете, использовать lighttpd или другой высокоэффективный веб-сервер.

реальные ответы:

  1. Действительно знают Ваш SQL и проводят время, анализируя медленные запросы. Загрузки страницы Most не должны требовать больше, чем секунда прямых запросов.
  2. Определяют, где Ваша загрузка действительно. Если это - тяжелый медиа сайт, рассмотрите контент хостинга в другом месте (как Akamai или некоторая другая служба). Если это - тяжелый базой данных сайт, рассмотрите репликацию.
  3. Знают, какая репликация будет работать на Вас. Если у Вас есть тяжелый чтением сайт, стандартный MySQL репликация, master/slave должна быть прекрасной. Если у Вас будет большое продолжение записей, Вы будете нуждаться в некоторой мультиосновной установке, как MySQL Cluster (или исследовать 'расположение каскадом' или репликацию 'водопада').
  4. , Если Вы можете, постарайтесь не называть PHP - т.е. имейте кэшируемые помехи (HTML) копия страницы (который является тем, что большую часть Wordpress, кэширующего плагины, делают). Apache намного быстрее служит статическим файлам, чем даже самое простое привет мировой Сценарий PHP.
7
задан IAdapter 24 September 2009 в 21:13
поделиться

3 ответа

global_objects.hpp

extern int myGlobalInt;

global_objects.cpp

#include "global_objects.hpp"

namespace
{
    int myGlobalInt;
}

А затем #include "global_objects.hpp" везде, где вам нужно myGlobalInt .

Вы также должны прочитать Синглтон C ++ против глобального статического объекта и Инициализация ресурсов qt, встроенных в статическую библиотеку .

9
ответ дан 6 December 2019 в 19:39
поделиться

В общем случае вам не следует использовать глобальные переменные в объектно-ориентированном программировании. В вашем случае вы можете решить проблему, предоставив статические функции доступа к переменной в вашем основном классе. Однако вы должны знать, что это несколько противоречит ООП.

class MainClass
{
    public:
        static int mySharedValue(void) { return m_mySharedValue; }
        static void setMySharedValue(int value) { m_mySharedValue = value; }
    private:
        static int m_mySharedValue;
}

Foo::myOtherClassFunction(void)
{
    // do something
    int bar = MainClass::mySharedValue();
    // do some more
}

Кроме того, вы можете унаследовать свое основное приложение от QApplication и добавить туда функции доступа, обращаясь к основному объекту через указатель qApp . пользователя Qt. Вдобавок к этому вы всегда можете использовать глобальную переменную так же, как и в C, хотя я бы не рекомендовал это.

1
ответ дан 6 December 2019 в 19:39
поделиться

В Qt есть одноэлементное QApplication с его статическим методом QApplication :: instance (), который возвращает вам единственный объект QApplication. Он имеет множество других статических функций-членов (в прежние времена их называли «глобальными») для главного окна, активного окна и т. Д.

http://doc.trolltech.com/4.5/qapplication.html

Вы можете создать подкласс, если хотите добавить свою статику.

3
ответ дан 6 December 2019 в 19:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: