`
浮生长恨
  • 浏览: 212161 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

单例模式的C++ Template实现

阅读更多
  这是一个系列的文章,详情可点击关于这两年所经历项目的系列总结

在实现下一个游戏功能之前,我们先得实现一下单例模式,因为游戏中有很多地方会用到这样的功能,比如工具类等这些在游戏中只存一份的,需要用到单例模式。

这功能也无需多说,直接上代码,.h文件如下
#ifndef _SINGLETON_H_
#define _SINGLETON_H_

template<class T>
class  Singleton
{
private:
	static T * iInstance;
public:
	static T * getInstance();
	static void FreeInstance();
};

template<class T>
T * Singleton<T>::iInstance=0;

template<class T>
T * Singleton<T>::getInstance()
{
	if(iInstance == 0)
	{
		iInstance=new T();
	}

	return iInstance;
}

template<class T>
void Singleton<T>::FreeInstance()
{
	if(iInstance)
	{	
		delete iInstance;
		iInstance=0;
	}
}

#endif


关于如何使用该类,下一讲中就会用到。
分享到:
评论

相关推荐

    Headfirst(五)单例模式C++实现

    在C++中实现单例模式,通常有多种方法,包括懒汉式、饿汉式、双重检查锁定(DCL)等。让我们深入探讨这些实现方式及其优缺点。 **一、懒汉式(Lazy Initialization)** 懒汉式单例的特点是在首次使用时才创建对象,...

    详解C++实现线程安全的单例模式

    总结来说,C++实现线程安全的单例模式通常涉及到对实例化过程的控制,以确保在多线程环境下只有一个实例存在。饿汉模式在类加载时完成实例化,是线程安全的,而懒汉模式需要额外的同步机制如互斥锁来保证线程安全。...

    c++中的单例类模板的实现方法详解

    在C++中,实现单例模式的基本步骤包括: - **私有化构造函数**:防止通过默认构造函数在类外部创建对象。 - **私有静态成员变量**:存储单例对象的实例,初始化为NULL。 - **公有静态成员函数**:作为获取单例对象...

    深入浅出设计模式 C++ 源码 + 设计模式 C++

    1. 单例模式:通过私有构造函数和静态成员实现,确保类只有一个实例。 2. 工厂方法模式:使用虚拟函数实现接口,让子类决定实例化哪个类。 3. 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需...

    设计模式精解-GoF23种设计模式解析附C++实现源码

    - 单例模式(Singleton):保证一个类只有一个实例,并提供全局访问点。 - 工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类。 - 抽象工厂模式(Abstract Factory):提供...

    设计模式 c++实现

    - 单例模式(Singleton):确保一个类只有一个实例,并提供一个全局访问点。在C++中,通常使用静态成员变量和私有构造函数来实现。 - 原型模式(Prototype):通过复制已有对象创建新对象,C++可以使用`clone`接口...

    GOF23设计模式讲解及C++源代码实现

    例如,单例模式在C++中通常使用静态成员变量和私有构造函数来确保一个类只有一个实例。工厂方法模式则通过定义一个创建对象的接口,但让子类决定实例化哪一个类,将类的实例化延迟到子类。而建造者模式则通过分步骤...

    23种设计模式c++实现代码

    1. 单例模式(Singleton):保证一个类只有一个实例,并提供一个全局访问点。在C++中,通常使用静态成员变量和私有构造函数来实现。 2. 工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定...

    GoF+23种设计模式解析附C++实现源码(2nd+Edition).pdf

    现代C++推荐使用线程安全的懒汉式单例模式来避免不必要的资源初始化。 #### 1.4 Builder模式 **定义**: Builder模式允许你逐步构建一个复杂的对象。该模式允许你使用相同的构建过程创建不同类型和表示的复杂对象。...

    设计模式C++版

    设计模式C++版文档主要聚焦于面向对象设计与分析的核心——设计模式,并以C++语言实现为示范。这份文档详尽阐述了23种GoF(Gang of Four)设计模式,并结合具体的C++源码示例,旨在帮助读者深入理解并掌握这些设计...

    设计模式_C++语言实现

    例如,`01.pdf`可能详细讲解了如何在C++中实现单例模式。 2. **工厂模式**(Factory):提供一个接口用于创建一系列相关或相互依赖的对象,而无需指定它们的具体类。C++中的工厂模式可以是简单工厂、抽象工厂或者...

    C++设计模式 c++实现源码

    1. **单例模式(Singleton)**:确保一个类只有一个实例,并提供一个全局访问点。在C++中,可以通过静态成员变量和私有构造函数来实现。 2. **工厂方法模式(Factory Method)**:定义一个创建对象的接口,让子类...

    设计模式精解-GoF 23种设计模式解析附C++实现源码

    - **缺点**:破坏了单一职责原则,同时单例模式的实现容易成为系统中的耦合点。 4. **Builder模式** - **定义**:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 - **应用场景**...

    设计模式精解-GoF-23种设计模式解析--附C++源代码

    - 单例模式(Singleton):确保一个类只有一个实例,并提供一个全局访问点。 - 工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类。 - 抽象工厂模式(Abstract Factory):...

    设计模式C++实现

    本资料包"设计模式C++实现"包含了24种经典的设计模式,每一种模式都有详细的注释,使得学习者能够更好地理解和应用。 首先,我们来看看这24种设计模式的基本分类。它们主要分为三大类:创建型模式(Creational ...

    GoF 23种设计模式模式解析附C++实现源码

    1. 创建型模式(Creational Patterns):这类模式主要处理对象的创建,包括单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式...

    23个设计模式C++代码.rar

    这个压缩包“23个设计模式C++代码.rar”包含了对设计模式的C++实现,是学习和理解设计模式的宝贵资源。 首先,我们来看一下三个主要类别:结构型、创建型和行为型设计模式。 1. **结构型设计模式**关注如何组织类...

Global site tag (gtag.js) - Google Analytics