Форум программистов, компьютерный форум CyberForum.ru

Мой синглтон. Дайте рекомендации, оцените, пожалуйста - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Стоит ли проверять результат выполнения new? http://www.cyberforum.ru/cpp-beginners/thread1104876.html
Начал изучать С++ и очень часто в книге, в примерах, не проверяют значение, возвращаемое оператором new. Ну понятно, что new может вернуть NULL, когда не будет достаточно хипа для выполнения запроса. А есть ли еще какие-либо моменты, когда new вернет NULL и стоит ли проверять результат?
C++ Создать класс String и перегрузить операторы Написать программу, демонстрирующую работу класса : b) Создать класс String – строку, используя динамическую память. Определить операторы "+" –сложение строк, "=" и "+=" – присваивания, как дружественные функции. Определить операторы сравнения "==", "!=", "<", ">", как методы класса. Операторы должны работать как со String, так и с char*. Определить оператор "" для доступа к каждому символу в... http://www.cyberforum.ru/cpp-beginners/thread1104850.html
C++ Классы с динамическими структурами данных. Перегрузить операции присваивания
Выполнить задание не используя библиотеку стандартных шаблонов. 1. Для типа динамической структуры данных, указанного в задании, разработать соответствующий класс, предусмотрев в нем конструкторы по умолчанию и копирования, деструктор, функции вставки и удаления элемента, просмотра доступного элемента, функцию, проверяющую наличие элементов. 2. Перегрузить операции присваивания. 3....
C++ Множественное наследование с использованием абстрактных базовых классов
Множественное наследование с использованием абстрактных базовых классов, файлового ввода-вывода с применением потоков С++, функций обработки исключительных ситуаций. Задание к практической работе Общая постановка. Создать программу с абстрактным базовым классом и множественным наследованием, реализовать в нем: • конструктор, • деструктор, • виртуальную функцию просмотра текущего состояния...
C++ Создать иерархию классов датчик – абстрактный базовый класс и датчики температуры, влажности и скорости ветра http://www.cyberforum.ru/cpp-beginners/thread1104843.html
а) Создать иерархию классов датчик – абстрактный базовый класс и датчики температуры, влажности и скорости ветра. Для каждого класса определить свои единицы измерения и способ снятия данных о значениях состояния окружающей среды. Определить конструктор копирования, оператор присваивания через соответствующие функции базового класса. Продемонстрировать работу классов. b) Создать класс...
C++ Создать иерархии наследования: книга, тетрадь – записная книжки Необходимо создать две программы, которые иллюстрировали бы оба приведенных выше примера множественного наследования. Создать динамический массив объектов, инициализировать его. Организовать поиск элемента в массиве по заданному значению. a) Создать иерархии наследования: книга, тетрадь – записная книжки. b) Создать иерархии наследования: бумага - книга, тетрадь – записная ... подробнее

Показать сообщение отдельно
Юрий Ч
5 / 5 / 0
Регистрация: 16.05.2012
Сообщений: 149
25.02.2014, 05:29     Мой синглтон. Дайте рекомендации, оцените, пожалуйста
Доброе утро!

Вот, наваял тут типа синглтон. Можете дать замечания по данной реализации. Спасибо!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Z:\programming\classes_cpp\general\gen_Tsingleton_pat\gen_Tsingleton_pat.h
 
#ifndef __GEN_TSINGLETON_PAT_H_
#define __GEN_TSINGLETON_PAT_H_
 
 
#include <memory>
 
 
/**
*
*/
template <class X> class gen_Tsingleton_pat
{
 
    public:     
 
        static X* instance();
 
    protected:
 
        static std::auto_ptr<X> m_obj_;
 
        gen_Tsingleton_pat();
        virtual ~gen_Tsingleton_pat();
 
    private:
 
        gen_Tsingleton_pat(const gen_Tsingleton_pat& obj);
        gen_Tsingleton_pat& operator=(const gen_Tsingleton_pat& obj);
 
};
 
 
#endif // __GEN_TSINGLETON_PAT_H_
 
 
// Z:\programming\classes_cpp\general\gen_Tsingleton_pat\gen_Tsingleton_pat.cpp
 
 
#include "Z:\programming\classes_cpp\general\gen_Tsingleton_pat\gen_Tsingleton_pat.h"
 
 
/**
*
*/
template <class X> gen_Tsingleton_pat<X>::gen_Tsingleton_pat()
{
}
 
 
/**
*
*/
template <class X> gen_Tsingleton_pat<X>::~gen_Tsingleton_pat()
{
}
 
 
/**
*
*/
template <class X> X* gen_Tsingleton_pat<X>::instance()
{
 
    if(!m_obj_)
        m_obj_ = std::auto_ptr<X>(new X);
    return m_obj_.get();
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru