Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
7 / 7 / 3
Регистрация: 17.04.2014
Сообщений: 156
1

Singleton. Одиночка. Паттерн

12.10.2015, 14:54. Показов 2079. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как реализовать паттерн Singleton на C++?
Делаю так:

Заголовочный файл:
C++
1
2
3
4
5
6
7
8
9
class Play
{
private:
    Play(void);
    ~Play(void);
    static Play playInstance;
public:
    static Play Instance();
};
Код .cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "Play.h"
Play::Play(void)
{
}
Play::~Play(void)
{
}
Play Play::Instance()
{
    if(playInstance==NULL)//В C# можно просто сравнить равен ли он null. Тут выдает ошибку.
    {
        playInstance = new Play();
    }
    return playInstance;
}
Находил такой вариант:

.h:
C++
1
2
3
4
5
6
7
8
9
class Play
{
private:
    Play(void);
    ~Play(void);
    static Play* playInstance;
public:
    static Play* Instance();
};
.cpp Instance:
C++
1
2
3
4
5
6
7
8
Play* Play::Instance()
{
    if(!playInstance)
    {
        playInstance = new Play();
    }
    return playInstance;
}
Но тут выводится ошибка о неразрешенном внешнем символе.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.10.2015, 14:54
Ответы с готовыми решениями:

Паттерн Singleton
Мне вот дали такой код как паттерн Singleton: #include "stdafx.h" template <class T> class...

Паттерн Singleton
Здравствуйте. Например есть класический одиночка и загрузка музыки. Возможно ли сделать загрузку и...

Паттерн "Одиночка" и конструктор копии с оператором присваивания
Здравствуйте! Подскажите пожалуйста с вопросом. Мне необходимо реализовать паттерн "Одиночка"....

Паттерн "Одиночка" и динамическая память
Приветствую всех! Набросал паттерн "Одиночка", при конструировании есть динамическая память, также...

3
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
12.10.2015, 14:58 2
Лучший ответ Сообщение было отмечено Lagilo как решение

Решение

Lagilo, Первый вариант не ок, С++ не C#.
Второй вариант просто сделайте в .cpp
C++
1
Play* Play::playInstance = 0;
0
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
12.10.2015, 15:01 3
Lagilo,
C++
1
2
3
4
5
6
7
8
9
10
11
12
class Play
{
private:
    Play();
    ~Play();
public:
    static Play & Instance()
    {
         static Play playInstance;
         return playInstance;
    } 
};
Синглтон Майерса.
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
12.10.2015, 17:11 4
а чего нет нигде копиконструктора в привате?

Добавлено через 14 секунд
чет падазрительна
0
12.10.2015, 17:11
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.10.2015, 17:11
Помогаю со студенческими работами здесь

Что значит Singleton& operator = ( Singleton& )?
// Singleton.h class Singleton { private: static Singleton * p_instance; //...

класс Одиночка
есть один приме класса Синглтон:class CSingleton { public: static CSingleton* GetInstance...

Класс одиночка!
#include <iostream> #include <cmath> #include <limits> #include <stdio.h> #include <math.h>...

Паттерн Одиночка
Проблема: Написал 4 паттерна, хотел раскинуть на 5 пректов (4 паттерна и main, где они срабатывают...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
Информационное моделирование
hw_wired 28.01.2025
Введение в информационное моделирование В современном мире информационное моделирование стало неотъемлемой частью научной, образовательной и профессиональной деятельности. Это мощный инструмент. . .
Объекты и их имена
hw_wired 28.01.2025
Введение: Основы объектного подхода и их роль в информатике В современном мире информационных технологий объектный подход стал фундаментальным принципом организации и обработки информации. Этот. . .
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru