Часто при проектировании программы выделяется некий набор данных, которые постоянно нужны в том или в другом месте программы. И хочется иметь простой способ достучаться к таким данным, без постоянных передач указателей на эти данные в параметрах вызываемых методов.
Обычно такие данные оформляются в виде синглтона. Но основная задача написания класса как синглтона - это обеспечение единственности инстанса данного класса. Это хорошее свойство, но недостаточное - программисту нужна именно возможность быстрого и простого доступа к объекту класса из любого места в программе.
Сделать это можно следующим образом. Необходимо сделать статический метод, например с именем instance(), который будет возвращать указатель на статический экземпляр этого же класса, хранящийся в данном методе. Вот так:
GlobalParameters* GlobalParameters::instance() // Метод должен быть статический
{
static GlobalParameters globalParameters; // Статическая переменная
return &globalParameters;
}
Использование:
#include "GlobalParameters.h"
GlobalParameters::instance()->anyMethod();
Проверить: надо ли создавать хотя бы один экземпляр данного объекта где-то в начале программы.