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

网摘网站推广法做网站用什么服务器好

网摘网站推广法,做网站用什么服务器好,武进做网站的公司,科技公司内蒙古网站制作目录 一、单例模式 1、设计模式 2、单例模式 1、饿汉模式 2、懒汉模式 3、单例对象的释放问题 二、设计一个不能被拷贝的类 三、设计一个只能在堆上创建对象的类 四、设计一个只能在栈上创建对象的类 五、设计一个不能被继承的类 一、单例模式 1、设计模式 概念 设计模式Design Pattern是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。 使用设计模式的目的为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化设计模式是软件工程的基石脉络如同大厦的结构一样。 2、单例模式 一个类只能创建一个对象即单例模式该模式可以保证系统中该类只有一个实例并提供一个访问它的全局访问点该实例被所有程序模块共享。 单例模式有两种实现模式 1、饿汉模式 就是说不管你将来用不用程序启动时就创建一个唯一的实例对象。即在main函数之前就创建好一个唯一的对象。 class MemoryPool { public:static MemoryPool GetInstance(){return _inst;}//防拷贝MemoryPool(MemoryPool const) delete;MemoryPool operator(MemoryPool const) delete; private://构造函数私有化MemoryPool(){}char* _ptr nullptr;static MemoryPool _inst; }; MemoryPool MemoryPool::_inst;// 在程序入口之前就完成单例对象的初始化 优点简单没有线程安全问题。 缺点1、一个程序中有多个单例并且有先后创建初始化顺序要求时饿汉模式无法控制无法控制初始化顺序。2、如果饿汉单例类初始化时任务多会影响程序的启动速度。 如果这个单例对象在多线程高并发环境下频繁使用性能要求较高那么显然使用饿汉模式来避 免资源竞争提高响应速度更好。  2、懒汉模式 第一次使用实例对象时再创建唯一的实例对象。 class MemoryPool { public:static MemoryPool* GetInstance(){if (_inst nullptr){_inst new MemoryPool;}return _inst;}private://构造函数私有化MemoryPool(){}char* _ptr nullptr;static MemoryPool* _inst; }; MemoryPool* MemoryPool::_inst nullptr; 优点 1、一个程序中有多个单例并且有先后创建初始化顺序要求时懒汉模式可以控制能够控制初始化顺序。2、不影响启动速度。 缺点1、相对复杂。2、线程安全问题要处理好。 如果单例对象构造十分耗时或者占用很多资源比如加载插件啊 初始化网络连接啊读取 文件啊等等而有可能该对象程序运行时不会用到那么也要在程序一开始就进行初始化 就会导致程序启动时非常的缓慢。 所以这种情况使用懒汉模式延迟加载更好。 3、单例对象的释放问题 1、一般情况下单例对象不需要释放。因为一般整个程序运行期间都会用到它。单例对象在进程结束后也会资源释放。 2、有些特殊场景需要释放。实现一个内嵌的垃圾回收类。 二、设计一个不能被拷贝的类 拷贝只会放生在两个场景中拷贝构造函数以及赋值运算符重载因此想要让一个类不能被拷贝只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。 class A { public:A(){}~A(){}A(const A) delete;A operator(const A) delete;private:int _a 1; };int main() {A a1;A a2(a1);return 0; } 三、设计一个只能在堆上创建对象的类 实现方式 1、将类的构造函数或者析构函数私有拷贝构造声明成私有。防止别人调用拷贝在栈上生成对象。 2、提供一个静态的成员函数在该静态成员函数中完成堆对象的创建或析构。 析构函数私有 class HeapOnly { public:static void Delete(HeapOnly* hp){delete hp;} private:~HeapOnly(){} private:int _a; };int main() {HeapOnly hp1;static HeapOnly hp2;HeapOnly* ptr new HeapOnly;HeapOnly::Delete(ptr); } 构造函数私有 class HeapOnly { public:static HeapOnly* CreatHeapOnly(){return new HeapOnly;}HeapOnly(const HeapOnly p) delete;HeapOnly operator(const HeapOnly p) delete; private:HeapOnly(){} private:int _a; };int main() {HeapOnly hp1;static HeapOnly hp2;HeapOnly* ptr HeapOnly::CreatHeapOnly();delete ptr; } 四、设计一个只能在栈上创建对象的类 将构造函数私有化然后设计静态方法创建对象返回即可。 class StackOnly { public:static StackOnly CreateObj(){return StackOnly();}// 禁掉operator new可以把下面用new 调用拷贝构造申请对象给禁掉// StackOnly obj StackOnly::CreateObj();// StackOnly* ptr3 new StackOnly(obj);void* operator new(size_t size) delete;void operator delete(void* p) delete; private:StackOnly() :_a(0){} private:int _a; }; 五、设计一个不能被继承的类 1、构造函数私有化派生类中调不到基类的构造函数。则无法继承。 class A { public:static A GetA(){return A();} private:A(){}int _a 1; };class B :public A { public:B(){} private:int _b 2; };int main() {B b;return 0; } 2、使用关键字 final final关键字final修饰类表示该类不能被继承。 class A  final {// .... };
http://www.hkea.cn/news/14353820/

相关文章:

  • 网站描述怎么写利于seo做国外零售的话是在什么网站开店
  • 江西通威公路建设集团有限公司网站郑州微信公众号网站建设
  • 搬家公司收费标准洛阳网站优化
  • 上海建筑网站公司网站还有用吗
  • thinkphp购物网站开发视频wordpress分享到qq空间
  • it培训机构网站开发如何规避电子政务门户网站建设的教训
  • 网站安全建设费用预算表网站地图写法
  • 移动端网站做排名中国装饰网
  • 夏津网站建设网络营销工程师培训
  • excel连接网站 做数据分析绍兴网站建设方案托管
  • 网站层次上海做网站优化的公司
  • 免费的建筑设计网站微企点做网站怎么样
  • 手机建站平台四川大学毕业设计网站
  • 学习前端的网站网页建立网站平台
  • 网站开发报价合同范本网站开发应用
  • wordpress商店网页谷歌官方seo入门指南
  • 各类网站规划百度官方网站入口
  • 网站js修改代码服务器安全加固
  • 济宁市做网站的公司百度不收录什么网站
  • 个人网站是商业的吗山东网站优化
  • 站长之家seo哪个建站比较好
  • 西安网站制作公司怎么选文件备案网站建设方案
  • 内部网站做登陆内部链接面料详情页设计模板
  • 英语网站推广策划书普通企业网站建设
  • 自媒体网站建设论文wordpress的搜索
  • 苗木公司网站模板河南省建设工程注册中心网站
  • 网页设计与网站建设书籍如何创建小程序商店
  • 特产网站模板做海报图片去哪个网站找 知乎
  • 淮安市建设监理协会网站会展公司排名
  • 点对点视频网站开发吉林大学建设工程学院 旧网站