zoukankan      html  css  js  c++  java
  • C++笔记1: 单例模式。(一个简单的设计模式在C++中复杂出翔。。)

    C++ 如果用指针new一个单例,内存不容易释放,所以Java和C#等语言中的单例模式在C++不适用。。。

    C++中,new申请的内存必须由delete释放,例如:

    1 Point p1;
    2 Point *p2 = new Point();

    这里p1没有用new创建,不用delete释放,程序结束后会自动释放,而p2用new创建,必须有对应的delete来释放。

    所以单例模式中,我们可以用p1这种方式:

     1 class Point
     2 {
     3 public:
     4     static Point *getInstance()
     5     {
     6         return &instance;
     7     }
     8 
     9 private:
    10     Point()
    11     {
    12     }
    13 
    14     static Point instance; //这样创建,不用delete释放,线程也安全。
    15 };

    注意!!
    一定要在类外面加上一句:

    Point Point::instance;

    类中只是声明,类外面才是定义。


    C++真心复杂出翔。。。

  • 相关阅读:
    js基础面试篇
    vue自定义指令
    vue兄弟节点通信
    vue----打包上线引用外部cdn
    vue----mockjs
    laravel database opearate1
    laravel seeding
    backtotop组件
    配置节流函数
    failed at the chromedriver@2.33.2 install script
  • 原文地址:https://www.cnblogs.com/wolfred7464/p/3641645.html
Copyright © 2011-2022 走看看