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

Реализация Синглетона, используя шаблоны C++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ IsProcessRun ошибочка http://www.cyberforum.ru/cpp-beginners/thread1305788.html
Всем привет. Недавно начал изучать C++ и сразу столкнулся с проблемкой. Делаю проверку на процесс таким образом: bool IsProcessRun(const char * const processName) { HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); PROCESSENTRY32 pe; pe.dwSize = sizeof(PROCESSENTRY32); Process32First(hSnapshot, &pe);
C++ Отсортировать вектор структур по одной переменной через qsort Есть вектора структур такого типа , нужно отсортировать через qsort эту структуру по точке point2 struct Mystruct { double point1; double point2; double point3; } http://www.cyberforum.ru/cpp-beginners/thread1305780.html
Написать программу: заменить элемент следующий за максимальным на 0.5 C++
Дано действительные числа A1,...,An и B1,...,Bn. В последовательности A1,...,An и в последовательности B1,...,Bn все члены, следующие за членом с наибольшим значением (за первым по порядку если их несколько), заменить на 0,5. Нужно на с++
Напишите программу перевода числа из 400 системы счисления в 10 ую с использованием классов! C++
Помогите реализовать!
C++ Сложение чисел в разных системах счисления (от 2 до 10) http://www.cyberforum.ru/cpp-beginners/thread1305762.html
необходимо написать подпрограмму сложения чисел в разных системах счисления я написала,но в результате почему-то всегда выдает 0,помогите разобраться,где ошибка(принцип такой:складываем числ столбиком, сначала младший разряд,если сумма больше основания то последняя цифра равна эта сумма-основание, а запоминающаяся цифра равна целой части от деления этой суммы на основание,затем мы собираем нашу...
C++ Обработка последовательности символов Попытался, но не получилось Может кто подскажет, в чем проблема. #include <stdio.h> #include <conio.h> #include <cstring> подробнее

Показать сообщение отдельно
AlexDavidyk
0 / 0 / 0
Регистрация: 11.10.2014
Сообщений: 3
20.11.2014, 10:56     Реализация Синглетона, используя шаблоны C++
В низу два Singleton, один я взял из этого форума, другой с книги, просто интересно имеют ли они одинаковый функционал. Любопытство возникло по причине того что найти объяснения в интернете я так и не смог.


Первый
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
#include <iostream>
#include <cstdlib>
#include <fstream>
 
template <typename T>
class Singleton
{
public:
    virtual ~Singleton () {};
    static T* getInstance ()
    {
        if (!singletonInstance)
        {
            singletonInstance = new T ();
        }
        return singletonInstance;
    }
    
protected:
    Singleton () {};
    static T* singletonInstance;
};
 
template <typename T>
T* Singleton<T>::singletonInstance;
 
class Logger : public Singleton <Logger>
{
private:
    Logger() : Singleton<Logger>() {}
    
protected:
    friend class Singleton<Logger>;
    
public:
    void log(const std::string& logMessage) const
    {
        std::cerr <<  logMessage << std::endl;
        
        const std::string logFile = "log.txt";
        std::ofstream f(logFile.c_str(), std::ios::app);
        f << logMessage << std::endl;
    }
};
 
int main()
{
    Logger::getInstance()->log("abc");
    return EXIT_SUCCESS;
}


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
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <cassert>
 
 
template <typename T>
class Singleton
{
public:
    
    Singleton()
    {
        assert(!singletonInstance);     
        singletonInstance = static_cast<T*>(this);
    }
    ~Singleton()
    {
        assert(singletonInstance);
        singletonInstance = 0;
    };
 
public:
    static T* GetSingletonPtr() { return singletonInstance; }
    static T& GetSingleton()        { return *singletonInstance; }
    static T* singletonInstance;
};
 
template <typename T>T* Singleton<T>::singletonInstance=0;
 
class Logger : public Singleton <Logger>
{
public:
    Logger()  {}
public:
    void log(const std::string& logMessage) const
    {
        std::cerr << "logMessage" << std::endl;
        const std::string logFile = "log3.txt";
        std::ofstream f(logFile.c_str(), std::ios::app);
        f << "logMessage" << std::endl;
    }
};
 
int main()
{
    new Logger; 
    Logger *p = Logger::GetSingletonPtr();
    p->log("abc");  
    return EXIT_SUCCESS;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru