zoukankan      html  css  js  c++  java
  • new总结

    引子:

    写C的人有个好习惯,就是if(malloc(sizeof(int)) == NULL) 申请完之后会检查一下,那么c++里你或许也会

    自然而然的有个好习惯if(new XXX == NULL) ,但这样无补于事,因为这个new并不等效于malloc,这里

    如果失败了就抛出badalloc,后面的检查不会被执行。

    new operator

    c++里面普遍用的,一直用的new,就是new operator。

    operator new

    这个就像C中的malloc,不负责初始化对象,需要自己初始化。对应的,operator delete也不负责析构,需要自己显式析构

    placement new

    placement new的定义与operator new声明之间的区别:placement new的定义多一个void*参数。代表从哪个buffer中分配内存,注意是分配内存,不是申请内存,被分配的内存是

    事先申请好的。这个new会调用构造函数,但同样需要自己显式析构。

  • 相关阅读:
    [JavaScript]编写一份会动的简历
    Vue.js 创建一个 CNODE 社区(1)
    hdu 2051
    hdu 2050
    hdu 2048
    赫夫曼编码
    R语言的学习(四)
    R语言的学习(三)
    R语言的学习(二)
    R语言的学习(一)
  • 原文地址:https://www.cnblogs.com/encode/p/4523757.html
Copyright © 2011-2022 走看看