zoukankan      html  css  js  c++  java
  • new和delete关键字

    new关键字创建出来的对象位于什么地方?
    很明显嘛,new关键字创建出来的对象一定位于堆空间,这种说法一定正确吗?本篇博客帮你揭开其神秘的面纱。

    被忽略的事实
    new/delete的本质是C++预定义的操作符
    C++对这两个操作符做了严格的行为定义
    -new:
    1.获取足够大的内存空间(默认为堆空间)
    2.在获取的空间中调用构造函数创建对象
    -delete:
    1.调用析构函数销毁对象
    2.归还对象所占用的空间(默认为堆空间)

    在C++中能够重载new/delete操作符
    全局重载(不推荐)
    局部重载(针对具体类进行重载)
    重载new/delete的意义在于改变动态对象创建时的内存分配方式

    new/delete的重载方式
    //static member function,写不写static都是静态成员函数。
    void* operator new(unsigned int size)
    {
        void* ret = NULL;
        /*ret pointer to allocated memory*/'
        return ret;
    }
    
    
    //static member function
    void operator delete(void* p)
    {
        /*free the memory which is pointed by p*/
    }
  • 相关阅读:
    pytest常用命令行
    pytest中一些常用插件
    case运行失败进行重试-pytest-rerunfailures插件
    adb 在自动化测试中的截图
    app的冷启动和热启动
    ATX
    UI自动化中常用的三种等待
    allure
    性能指标分析
    接口自动化之接口依赖解决
  • 原文地址:https://www.cnblogs.com/-glb/p/12294683.html
Copyright © 2011-2022 走看看