задрот в различнейших областях
Осталось, буквально, чуть-чуть.
У меня есть файл queue.h Там описан мой класс Queue и переменная отдельно Queue M
Сама идея: мне нужно в разных окнах добавлять/удалять элементы. Потребность: очередь была везде одинаковая, то есть. В добавлении добавила пять элементов, удалила 3, вставила 4, нашла элемент. Все эти действия демонстрируются в разных окнах, но должны изменять и возвращать общую очередь.
Вопрос: как это провернуть?
У меня есть файл queue.h Там описан мой класс Queue и переменная отдельно Queue M
Сама идея: мне нужно в разных окнах добавлять/удалять элементы. Потребность: очередь была везде одинаковая, то есть. В добавлении добавила пять элементов, удалила 3, вставила 4, нашла элемент. Все эти действия демонстрируются в разных окнах, но должны изменять и возвращать общую очередь.
Вопрос: как это провернуть?
нашла пример на C++.
Как его использовать? Не разу не пробовала.
там все достаточно просто
private:
OnlyOne(){}
OnlyOne(OnlyOne& root){}
делаете невозможным вызов конструктора из вне класса, т.е. запрещаете создавать экземпляры всяким там окнам и прочим, кому не положено.
static OnlyOne& const Instance() - статик, чтобы вызывать без зависимости от экземпляра (OnlyOne::Instance())
{
static OnlyOne theSingleInstance; - будет одинаковой при каждом запуске метода, поэтому создастся только в первый раз. И всегда будет возвращаться один и тот же экземпляр.
return theSingleInstance;
}
OnlyOne& operator=(OnlyOne&){} - чтоб не копировали лишний раз.
остается заменить имя класса и добавить нужные переменные в метод Instance, если нужно передавать параметры в конструктор.
эх, я надеялась на маленькую заплаточку=)
готовый класс переделывается в синглтон легко и просто.
повторяю для тех, кто на бронепоезде: у класса должно быть константный статический поле-член типа ссылка/указатель на свой же тип, традиционно его зовут Instance. Хотите - делайте его публичным, хотите - пишите к нему статический же геттер. Конструктор - только приватный, собственно для инциализации Instance статическим конструктором. Все обращения к классу идут в виде [имя класса].Instance.[имя функции]([параметры]). Локальный экземпляр никто создать не может, поскольку не имеет прав доступа к конструктору.
ох уж этот Qt.
Может это из-за того, что сишный пример? Пойду пример исключительно для Qt
не надо ничего копировать. Я Вам три раза разжевала принцип паттерна. Так сложно написать? Там строчек 5 от силы.
Пока на черновом варианте поставила externы.