`

C++单例Singleton

阅读更多
参考:http://topic.csdn.net/u/20080218/08/291c52f9-5ed0-4f7c-abeb-69f691c2e7f4.html


引用类,主动型。
貌似可以解决多线程初始化问题,防止多次new,
但因为是与程序启动而启动,可能会程序启动变慢。


class Singleton   
{   
private:   
    static Singleton instance;   
    Singleton(void)    {       }   
        
public:                       
    static Singleton& GetInstance()   
    {
        return instance;
    }
};

Singleton Singleton::instance;
// static修饰的属性要在类创建之前初始化
// 放在定义的cpp文件里
// 如果放在.h文件里,将造成引用重复


指针类,被动型。
这种是用到的时候才new。

class Singleton   
{   
private:   
    static Singleton *instance;   
    Singleton(void)    {       }   
        
public:                       
    static Singleton *GetInstance()   
    {
        if (NULL == instance)
            instance = new Singleton();
        return instance;
    }
    void cleanup()  // 由调用者解决释放资源问题
    {
        if (NULL == instance) return;
        delete instance;
        instance = NULL;
    }
};

Singleton *Singleton::instance = NULL;



分享到:
评论

相关推荐

    c++ 单例模式源码

    本人简单整理了自己所学,singleTon 比较简单,不足之处望指教

    设计模式C++学习之单例模式(Singleton)

    在C++中,实现单例模式有多种方法,我们将会深入探讨这一模式的原理、优缺点以及如何在实际编程中应用。 单例模式的核心在于控制类的实例化过程,防止多处代码创建多个实例导致资源的浪费或者状态不一致的问题。在...

    C++实现Singleton单例模式

    C++实现Singleton单例模式 本文档将详细介绍如何使用C++语言实现设计模式中的单例模式。单例模式是一种常用的设计模式,它可以确保一个类只能实例化一次。 单例模式的定义: 单例模式是一种创建型模式,它可以确保...

    使用C++11实现线程安全的单例模式

    在C++编程中,单例模式是一种常用的软件设计模式,它保证一个类只有一个实例,并提供一个全局访问点。线程安全的单例模式在多线程环境下尤其重要,因为不正确的实现可能导致多个线程创建多个实例,这违反了单例模式...

    C++单例模式示例代码

    下面是一个简单的C++单例模式实现示例: ```cpp class Singleton { private: Singleton() {} // 私有构造函数 static Singleton* instance; // 静态成员变量 public: static Singleton* getInstance() { // ...

    QT_C++单例模式懒汉+饿汉.rar

    "QT_C++单例模式懒汉+饿汉.rar"是一个压缩包,包含了关于C++在QT环境下实现单例模式的实例,分为懒汉式和饿汉式两种实现方式。 首先,我们来看一下单例模式的基本原理。单例模式通常用于那些需要频繁实例化然后销毁...

    单例极致 singleton C++

    四种常见的单例: 1、没有构造函数(DEFINE_SINGLETON_DEFAULT); 2、有构造函数,构造函数没有参数(DEFINE_SINGLETON_CONSTRUCT_NO_PARAM); 3、有构造函数,构造函数有没有参数版本(DEFINE_SINGLETON_...

    单例模式 c++

    在C++中实现单例模式有多种方法,下面将详细介绍单例模式的概念、目的以及C++中常见的实现方式。 1. **单例模式的基本概念** - 单例模式是一种创建型设计模式,它限制类的实例化过程,使得一个类只能有一个实例。 ...

    C++实现单例模式(懒汉式)源码

    在C++中,实现单例模式有多种方式,这里我们将聚焦于懒汉式(Lazy Initialization)的实现。懒汉式单例的特点是延迟初始化,即只有在第一次使用时才会创建实例,这有助于提高程序的运行效率。 一、懒汉式单例模式的...

    C++ 单例模式的几种实现方式研究

    "C++ 单例模式的几种实现方式研究" 单例模式是设计模式中最常应用的一种模式,也是面试官最喜欢的题目。但是,如果没有学过设计模式的人,可能不会想到要去应用单例模式,面对单例模式适用的情况。 单例模式的主要...

    C++单例模式应用实例

    本文实例讲述了C++单例模式及其相关应用方法,分享给大家供大家参考。具体方法分析如下: 定义: 一个类有且仅有一个实例,并且提供一个访问它的全局访问点。 要点: 1、类只能有一个实例; 2、必须自行创建此实例;...

    单例实现源码singleton-C++

    以下是对"单例实现源码singleton-C++"的详细解析。 1. **静态成员变量法** 这是最常见的单例实现方式。在类中定义一个静态成员变量,该变量保存唯一的实例。例如: ```cpp class Singleton { public: static ...

    创建型模式之单例模式(Singleton Pattern)

    单例模式是软件设计模式中的一种,属于创建型模式,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在很多场景下都非常有用,例如管理共享资源、配置对象或者缓存服务等。 单例模式的核心...

    C++ 实现的singleton 模式

    **C++实现的Singleton模式详解** Singleton模式是一种常用的软件设计模式,它保证一个类只有一个实例,并提供一个全局访问点。这种模式在很多场景下都非常有用,例如管理共享资源,如数据库连接池,或者确保某个...

    C++实现的单例模式代码

    在C++中,实现单例模式通常涉及到内存管理、线程安全以及生命周期控制等问题。下面将详细探讨C++中实现单例模式的三种方法,以及在多线程环境下的考虑。 1. 静态成员变量法(单线程) 这是最简单的单例实现方式,...

    Qt qml Singleton 单例模式

    - 如果Singleton需要在C++中初始化,可以使用`setObject`方法在C++侧设置Singleton的实例。 综上所述,Qt Qml的Singleton模式为全局共享对象提供了方便,使得在Qml环境中管理和访问同一对象变得简单。通过C++和Qml...

    C++单例模式

    **C++单例模式详解** 单例模式是软件设计模式中的一个重要概念,它是一种限制类实例化次数的设计模式,确保一个类只有一个实例,并提供一个全局访问点。在C++中,实现单例模式通常涉及以下几个关键点:线程安全、...

    C++单例模式的实例详解

    **C++单例模式详解** 单例模式是一种常用的软件设计模式,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。在C++中,单例模式被广泛应用于那些需要全局共享的对象,例如日志系统、数据库连接或配置...

    单例模式 C++ 实现

    在C++中实现单例模式,通常有几种常见的方法: 1. **懒汉式**:也称为延迟初始化,只有当第一次调用单例对象时才创建实例。这种做法避免了在程序启动时就创建不必要的对象。不过,如果多个线程同时尝试创建实例,...

    c++中单例模式对象的释放控制

    在C++编程领域,设计模式是解决特定问题的模板,其中单例模式(Singleton Pattern)是一种常用的创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点。然而,在C++中实现单例模式时,如何正确管理这个...

Global site tag (gtag.js) - Google Analytics