中文域名可以做网站吗,网站建设入门pdf,怎么设计网页主页,装修方案一、单例模式 定义#xff1a;一个类中的对象只能有一个#xff0c;它在内存中只会创建一次对象的设计模式。 用法#xff1a;在程序中如果多次用到同一个类中的方法进行操作时#xff0c;在使用时就会创建多个对象。为了防止频繁创建对象造成内存资源浪费#xff0c;就可…一、单例模式 定义一个类中的对象只能有一个它在内存中只会创建一次对象的设计模式。 用法在程序中如果多次用到同一个类中的方法进行操作时在使用时就会创建多个对象。为了防止频繁创建对象造成内存资源浪费就可以使用单例模式。 类型饿汉式和懒汉式
二、构建过程 1、要实现单例模式先把构造函数私有化【不可以从外部调到类的构造函数】 2、在public权限下定义一个函数返回本类对象的指针【若是普通函数需要依赖类对象的调用】 3、设置该函数为静态函数【静态函数没有this指针无法访问类中普通属性】 4、设置类中的本类指针为静态属性。
三、饿汉式
饿汉式单例模式在类加载时立即初始化并且创建单例对象由于在线程还没出现前就实例化因此绝对线程安全。
class Singleton {private:static Singleton *p;Singleton();public:static Singleton* getInstance() {return p;}class CG {public:~CG() {if(Singleton::p ! nullptr) {delete Singleton::p;Singleton::p nullptr;}}};
};Singleton* Singleton::p new Singleton();Singleton* s1 Singleton::getInstance();
四、懒汉式
懒汉式单例模式在类被加载时没有立刻被初始化第一次调用getInstance时才被初始化又称为延时加载。
static Singleton* getInstance() {if(p nullptr) {return new Singleton();}return p;
}
Singleton* Singleton::p nullptr;