c++ 与C# 单例代码简单实现
来源:互联网 发布:阿里云ddns客户端 编辑:程序博客网 时间:2024/05/01 10:35
#include <iostream>using namespace std;// 单例类-----懒汉式 : 在需要时才会创建单例对象class Singleton{public: static Singleton* getInstance(); // 获取或创建单例对象 ~Singleton();private:
Singleton(){} // 将构造函数声明为私有 static Singleton *instance; // 保存单例类对象首地址};// 初始化类静态成员变量Singleton* Singleton::instance = nullptr;Singleton * Singleton::getInstance(){ if (instance == nullptr) // 如果没有创建单例类对象,则创建对象 { instance = new Singleton; } return instance; // }Singleton::~Singleton(){ if (instance != nullptr) { delete instance; instance = nullptr; }}int main(){ Singleton *sg1 = Singleton::getInstance(); Singleton *sg2 = Singleton::getInstance(); if (sg1 == sg2) { cout << "sg1 == sg2" << endl; cout << "sg1 = " << hex << sg1 << endl; cout << "sg2 = " << hex << sg2 << endl; } return 0;}
#include <iostream>using namespace std;// 单例类-----饿汉式 : 需不需要都会创建单例对象 程序执行到main函数之前已经创建成功class Singleton{public: static Singleton* getInstance(); // 获取单例对象 ~Singleton();private:
<span style="white-space:pre"></span>Singleton(){} // 将构造函数声明为私有
static Singleton *instance; // 保存单例类对象首地址};// 创建单例对象并初始化类静态成员// 执行到main函数之前调用// 生命周期: 从程序运行开始到程序运行结束Singleton* Singleton::instance = new Singleton; Singleton * Singleton::getInstance(){ return instance; // }Singleton::~Singleton(){ if (instance != nullptr) { delete instance; instance = nullptr; }}int main(){ Singleton *sg1 = Singleton::getInstance(); Singleton *sg2 = Singleton::getInstance(); if (sg1 == sg2) { cout << "sg1 == sg2" << endl; cout << "sg1 = " << hex << sg1 << endl; cout << "sg2 = " << hex << sg2 << endl; } return 0;}
C# 代码的实现
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 单例模式CS{ public class Singleton { // 将构造函数声明为私有 private Singleton() { } public static Singleton getInstance() { // 判断单例对象是否创建,如果没有创建则创建之 if(instance == null) { instance = new Singleton(); } return instance; // 返回单例对象 } // 静态成员变量及初始化 private static Singleton instance = null; } class Program { static void Main(string[] args) { Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); if(s1 == s2) { Console.WriteLine("s1 == s2"); } } }}
c#单例方式2
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 单例模式CS{ public class Singleton { // 将构造函数声明为私有 private Singleton() { } public static Singleton getInstance() { return instance; // 返回单例对象 } // 静态成员变量及初始化 private static Singleton instance = new Singleton(); } class Program { static void Main(string[] args) { Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); if(s1 == s2) { Console.WriteLine("s1 == s2"); } } }}
0 0
- c++ 与C# 单例代码简单实现
- 单例模式的简单代码实现
- 单例模式代码实现(C++)
- 单例模式代码实现与解析
- 总让人忘记的单例模式C#代码实现
- C#实现单例
- Java单例模式与工厂模式简单示例代码
- 最小二乘法C#实现,简单代码
- 【C++】单例模式的一种简单实现的模板
- c#单例模式代码
- 多线程安全的Singleton单件模式在C++,java与C#下的实现
- C# 单例模式实现
- 简单的单例实现
- 单例的简单实现
- 单例模式简单实现
- 单例的简单实现
- 单例的简单实现
- C#:C#与libLAS的简单操作(VS2010窗体+代码)
- C语言中对文件的操作
- Memcached客户端(memcached-Java-client)与 Spring集成(单服务器)
- 关于路由器上网设置
- Convert Sorted List to Binary Search Tree
- win8 C 盘 突然少了 十几G 空间 原因,解决方法
- c++ 与C# 单例代码简单实现
- 算法分析--数量级比较
- Visual Studio 各版本下载
- 典型大数题(解体模板)
- 解决AngularJS在安卓WebView中跳转时不刷新的问题
- 学习solr不错的系列博文
- java多线程学习笔记——相关名词介绍
- 1379 DNA Sorting
- JSP之JavaBean