当前位置: 首页 > news >正文

高度重视机关门户网站建设良精企业网站系统

高度重视机关门户网站建设,良精企业网站系统,apple 官网,门户网站和官网的区别C/C学习——单例模式 一、什么是单例模式?二、单例模式应用三、单例模式的特点注意:静态成员变量的使用示例代码: 四、单例模式C代码示例(饿汉模式)五、单例模式C示例代码(懒汉模式) 一、什么是…

C/C++学习——单例模式

  • 一、什么是单例模式?
  • 二、单例模式应用
  • 三、单例模式的特点
    • 注意:静态成员变量的使用
    • 示例代码:
  • 四、单例模式C++代码示例(饿汉模式)
  • 五、单例模式C++示例代码(懒汉模式)

一、什么是单例模式?

单例模式(Singleton Pattern)是一种创建型设计模式,用于确保在应用程序的生命周期内只存在一个特定类的唯一实例。这意味着无论何时请求该类的实例,都将返回同一个实例,而不会创建多个相同的对象。

二、单例模式应用

资源共享:当多个对象需要共享同一个资源,如数据库连接、文件系统、日志记录器等时,使用单例模式可以确保只有一个实例在管理这些资源,避免资源冲突和浪费。

全局控制:某些类负责管理全局的配置或状态信息。通过单例模式,可以确保在整个应用程序中只有一个配置管理器或状态管理器。

惰性初始化:某些对象的创建和初始化可能会很昂贵,只有在需要时才应该进行。单例模式允许延迟对象的创建,直到第一次请求它。

避免重复操作:有时需要确保只有一个对象负责某种操作,以避免重复执行。

三、单例模式的特点

私有的构造函数:单例类的构造函数必须是私有的,以防止外部代码直接实例化对象。

静态成员变量:通常单例类包含一个私有的静态成员变量,用于保存唯一实例的引用。

静态成员函数:通常单例类包含一个静态成员函数,用于获取唯一实例。这个函数通常会在内部检查是否已经创建了实例,如果没有,则创建一个新的实例并返回。

**

注意:静态成员变量的使用

**(静态成员变量是类的一部分,并不是类的实例的一部分同时静态成员函数不需要使用类的实例来调用,可以直接通过类名来调用

示例代码:

#include <iostream>
class Myclass
{
public:static void myPrint(); //静态成员函数声明
};
void Myclass::myPrint() //静态成员函数声明
{std::cout << "测试静态成员函数!\n" << std::endl;
}void test_1()
{/*静态成员函数是类的一部分,但不是类的实例的一部分;静态成员函数不需要使用类的实例来调用,可以直接通过类名来调用*/Myclass::myPrint();
}int main()
{test_1();return 0;
}

四、单例模式C++代码示例(饿汉模式)

结果:在没有使用该类的情况下也会实例化对象。

#include <iostream>//单例模式实现 示例
class Singleton
{private:static Singleton _eton; //静态成员变量_eton的声明,这里并没有定义//构造函数Singleton():_data(99) {std::cout << "单例模式构造!\n";}//删除拷贝构造,C++11特性Singleton(const Singleton&) =delete; //析构函数~Singleton(){}private:int _data;//对外提供的接口public:static Singleton &getInstance(){return _eton;}int getData(){return _data;}
};Singleton Singleton::_eton; //静态成员函数的定义int main()
{std::cout << Singleton::getInstance().getData() <<std::endl;return 0;
}

五、单例模式C++示例代码(懒汉模式)

懒汉模式:第一次使用要使用单例对象的时候创建实例对象。如果单例对象构造特别耗时或者耗费资源(加载插件、加载网络资源等),可以选择懒汉模式,在第一次使用的时候才创建对象

#include <iostream>class Singleton
{private:Singleton():_data(90){std::cout << "单例对象构造!\n" << std::endl;}Singleton(const Singleton&) = delete;~Singleton(){}private:int _data;public:static Singleton &getInstance(){static Singleton _eton;return _eton;}int getData(){return _data;}
};int main()
{std::cout << Singleton::getInstance().getData() << std::endl; //只有在实例化对象的时候才可以调用return 0;
}
http://www.15wanjia.com/news/191607.html

相关文章:

  • 网站开发设计文案内网如何做网站访问
  • 成都网站制作网站怎么用wordpress布局
  • 北京房山网站建设文山州住房建设网站
  • 广州网站公司建设网站宁波企业自助建站系统
  • 昆山有名的网站建设公司网站如何做邮箱订阅
  • asp网站后台管理系统下载wordpress手机博客
  • 如何借助织梦制作一个简单的网站济南企业建站
  • 柳州网站推广哪家好网页制作素材去哪找
  • 常州 微网站淘宝客为什么做网站
  • 网站图片如何做防盗链icp备案网址
  • 外贸网站建设公司 迅当网可以发外链的网站整理
  • 黑龙江省网站前置审批网站wordpress插件位置
  • 无锡做网站优化哪家好实事新闻热点
  • 地方网站做相亲赢利点在哪网站建设需求书
  • 怎么做网站的seo优化石家庄网站开发与优化
  • 国外优秀网站设计中铁建设集团门户网站登录
  • html5 单页 响应式 网站模板淘宝特价版
  • 成都做营销型网站推广品牌营销做得好的品牌有哪些
  • 什么软件做网站好woocommerce做零售网站
  • 网站里的做菠菜网站开发英语词汇
  • 建设网站比较好公司传媒公司注册需要什么条件
  • 潍坊住房与城乡建设局网站今天重大新闻摘抄
  • 页面设计网站素材东莞seo广告宣传
  • 网站建设与管理赚钱吗dedecms做的网站网站中的图片总是被同一ip恶意点击
  • 营销型网站的类型有哪些我想自己做的知道网站
  • 网站建站平台eazyshop提供免费建网站的网
  • 永登县建设局网站网站正在建设中手机版
  • 徐州网站山西做网站公司
  • 沈阳网站建设专业公司打开网站弹出广告js
  • 网站创建方案小语种外贸网站