实际项目的单例模式,懒汉式,到手直接用

在这里插入图片描述

#ifndef _MY_SINGLETON__H__
#define _MY_SINGLETON__H__

#include <assert.h>

namespace Project
{

template <typename T> class SINGLETON
{
protected:
    static T* m_singleton;
public:
    SINGLETON(void)
    {
        assert(!m_singleton);
#if defined( _MSC_VER ) && _MSC_VER < 1200	 
        int offset = (int)(T*)1 - (int)(Singleton <T>*)(T*)1;
        m_singleton = (T*)((int)this + offset);
#else
        m_singleton = static_cast<T*>(this);
#endif
    }
    ~SINGLETON(void)
    {
        assert(m_singleton);
        m_singleton = 0;
    }
    static T& refenece(void)
    {
        assert(m_singleton);
        return (*m_singleton);
    }
    static T* pointer(void)
    {
        return m_singleton;
    }
};

}

#endif

使用方式如下:

class MainWindow : public QMainWindow, public Project::SINGLETON<MainWindow>
{
	Q_OBJECT

public:
	MainWindow(QWidget* parent = Q_NULLPTR);
	virtual ~MainWindow();

	void init();
	void initScene();
}

在这里new一个对象,先构造父类

stdshared_ptrMainWindow main_window = stdmake_sharedMainWindow();

这样全局调用

int a=MainWindow::pointer()-> initScene();

相关推荐

  1. 懒汉模式

    2024-03-16 01:12:03       38 阅读
  2. 设计模式-模式懒汉

    2024-03-16 01:12:03       41 阅读
  3. 如何理解模式---懒汉

    2024-03-16 01:12:03       51 阅读
  4. 模式懒汉

    2024-03-16 01:12:03       34 阅读
  5. 模式:双重效验锁懒汉实现方式

    2024-03-16 01:12:03       40 阅读
  6. 2_单列模式_懒汉模式

    2024-03-16 01:12:03       53 阅读
  7. 模式 饿汉懒汉区别

    2024-03-16 01:12:03       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-16 01:12:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-16 01:12:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-16 01:12:03       82 阅读
  4. Python语言-面向对象

    2024-03-16 01:12:03       91 阅读

热门阅读

  1. C++的线程介绍

    2024-03-16 01:12:03       44 阅读
  2. 【Python3】观察者模式

    2024-03-16 01:12:03       46 阅读
  3. css页面布局

    2024-03-16 01:12:03       45 阅读
  4. DNS 技巧与窍门

    2024-03-16 01:12:03       41 阅读
  5. Kubernetes部署与卸载

    2024-03-16 01:12:03       46 阅读
  6. msql检索包含中文的记录

    2024-03-16 01:12:03       42 阅读
  7. C++中的引用

    2024-03-16 01:12:03       46 阅读
  8. element ui el-select组件添加选项下拉加载

    2024-03-16 01:12:03       40 阅读
  9. 蓝桥杯刷题(七)

    2024-03-16 01:12:03       41 阅读
  10. Spring-1

    Spring-1

    2024-03-16 01:12:03      41 阅读
  11. 2024年3月质量管理体系基础考试真题

    2024-03-16 01:12:03       41 阅读
  12. 【C++】每日一题 101 对称二叉树

    2024-03-16 01:12:03       39 阅读
  13. 【数组】-Lc53-最大子序和(动态规划)

    2024-03-16 01:12:03       46 阅读