`
jiav_net
  • 浏览: 104176 次
文章分类
社区版块
存档分类
最新评论

C++中new的三种用法

 
阅读更多

C++中new的用法有三种(两大类),其一是new operator(new表达式),其二是operator new(new操作符)。

new表达式比较常见,也最常用,例如:

new操作符类似于C语言中的malloc,它只是负责申请内存,但不负责内存块的初始化。

例如:

这是new的第二种用法。

new的第三种用法就不很常见,官方的说法是placement new,它用于在给定的内存中初始化对象,也就是说你手中已有一块闲置的内存(如用new的第二种用法申请的内存),现在需要将其初始化。

例如:

事实上,placement new也是new表达式的一种,但是比普通的new表达式多了一个参数,当然完成的操作和返回值也不同。

因此上面new的第一种用法可以分解两个动作,分别为后面的两种用法。

与new对应的delete没有三种语法,它只有两种,分别是delete operator和operator delete,也称为delete表达式和delete操作符。delete表达式和new表达式对应,完成对象的析构和内存的释放操作。而delete 操作符只是用于内存的释放,和C语言中的free相似。

例如:

而placement new对象的释放步骤为:

关于placement new,以后有时间再细谈。

分享到:
评论

相关推荐

    c++中new的三种用法详细解析

    以下的是对c++中new的三种使用方法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助

    c语言中new_C++的new归纳详解

    本文档为word文档,主要介绍c++中new的用法,介绍详细,有具体代码分析,适合初学者理解,高手也值得一看!

    c++语言,new和delete

    有关于c++方面new和delete的用法及关注

    浅谈C++中virtual的三种用法

    virtual用法一 #include using namespace std; class A{ public: virtual void display(){ cout<<"A"<<ENDL>display(); delete p; } int main(int argc,char* argv[]) { doDisplay(new B()); return 0; ...

    C++new 用法

    C++的new函数的用法,学习C++必备

    总结C++中三种关于new的使用方法.pdf

    。。。

    总结C++中三种关于new的使用方法.docx

    。。。

    C++中new和delete的使用方法详解

    C++中new和delete的使用方法详解 new和delete运算符用于动态分配和撤销内存的运算符 new用法:  1. 开辟单变量地址空间  1)new int; //开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a = new ...

    C和C++中的异常处理

    1.异常和标准 C 对它的支持 2. Microsoft 对异常处理方法的扩展 3. 标准 C++异常处理的基本语法和语义 4. 实例剖析 EH 5. C++的 new 和 delete 操作时的异常处理 ...17. C++异常和 Visual C++ SEH 的混合使用

    c++中new和delete操作符用法

    new用法: 1. 开辟单变量地址空间 1)new int; 开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a = new int 即为将一个int类型的地址赋值给整型指针a.  2)int *a = new int(5) 作用同上,但是同时将...

    C++ 中placement new 操作符使用方法

    C++ 中placement new 操作符使用方法 placement new操作符能够在分配内存时指定内存位置。下面的程序使用了placement new操作符和常规new操作符给对象分配内存。 // placenew.cpp -- new, placement new, no delete...

    c++中try catch的用法小结

    主要介绍了c++中try catch的用法小结,需要的朋友可以参考下

    浅析c++中new和delete的用法

    以下是对c++中new和delete的用法进行了详细的分析介绍,需要的朋友可以过来参考下

    关于new和delete的详细用法

    关于new和delete的详细用法。详细用法哟!new是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,

    新手学习C++入门资料

    在C++语言中,有了一种新的注释方法,就是‘//’,在该行//后的所有说明都被编译器认为是注释,这种注释不能换行。C++中仍然保留了传统C语言的注释风格/*……*/。 C++也可采用格式化输出的方法: #include ...

    C++动态创建多维数组

    此实例解释了new动态创建多维数组的用法,还有包涵了多维数组指针的用法···

Global site tag (gtag.js) - Google Analytics