zoukankan      html  css  js  c++  java
  • 单例模板类

    //单例模板类,C++11能保证函数中的静态成员线程安全

    template <typename T>

    class Singleton

    {

        T* value;

        void create_singleton()

        {

            static T t;

            value =&t;

        }

    public:

        Singleton():value(){

            create_singleton();

        }

        T* get_instance()

        {

            return value;

        }

    };

     

    //要实现的单例类写法

    class my_data

    {

    private :

        my_data():i(0)

        {

            i+=rand();

        }

        int i;

    public:

        friend class Singleton<my_data>;

    };

     

    //测试

    void test_singleton()

    {

        my_data* p =(Singleton<my_data>()).get_instance();

        my_data* p2 ((Singleton<my_data>()).get_instance());

        

        if(p == p2)

        {

            std::cout<<"same"<<std::endl;

        }

    }

  • 相关阅读:
    各种小知识
    基础技能
    st表
    有理数取余
    FFT加速高精度乘法
    unique
    离散化
    线段树复杂度分析
    楼房重建
    电脑装系统常用方法
  • 原文地址:https://www.cnblogs.com/sofard/p/10450613.html
Copyright © 2011-2022 走看看