Сократить обращение к singleton классу
У меня в программе есть singleton класс, к объекту которого я обращаюсь как my_class::instance().metod(...)
Возможно ли эту запись сократить, не меняя имён класса/методов?
typedef my_class::instance() a; который я попробовал, не является правильным т.к. my_class::instance() - объект, а не тип (Появляется соответствующая ошибка)
my_class& my_class::instance()
{
static my_class single;
return single;
}
Или для такого нужно по другому реализовывать класс? Просто это самая простая реализация singleton класса, которую я нашёл
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Вариант первый — если все эти вызовы в одной области видимости, ввести переменную-ссылку наподобие
myclass& M = myclass::instance();
и дальше просто работать с M.method() и иже с ним.
Вариант второй — воспользоваться препроцессором, типа
#define M myclass::instance()
...
M.method();