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的三种使用方法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助
本文档为word文档,主要介绍c++中new的用法,介绍详细,有具体代码分析,适合初学者理解,高手也值得一看!
有关于c++方面new和delete的用法及关注
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++必备
。。。
。。。
C++中new和delete的使用方法详解 new和delete运算符用于动态分配和撤销内存的运算符 new用法: 1. 开辟单变量地址空间 1)new int; //开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a = new ...
1.异常和标准 C 对它的支持 2. Microsoft 对异常处理方法的扩展 3. 标准 C++异常处理的基本语法和语义 4. 实例剖析 EH 5. C++的 new 和 delete 操作时的异常处理 ...17. C++异常和 Visual C++ SEH 的混合使用
new用法: 1. 开辟单变量地址空间 1)new int; 开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a = new int 即为将一个int类型的地址赋值给整型指针a. 2)int *a = new int(5) 作用同上,但是同时将...
C++ 中placement new 操作符使用方法 placement new操作符能够在分配内存时指定内存位置。下面的程序使用了placement new操作符和常规new操作符给对象分配内存。 // placenew.cpp -- new, placement new, no delete...
主要介绍了c++中try catch的用法小结,需要的朋友可以参考下
以下是对c++中new和delete的用法进行了详细的分析介绍,需要的朋友可以过来参考下
关于new和delete的详细用法。详细用法哟!new是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,
在C++语言中,有了一种新的注释方法,就是‘//’,在该行//后的所有说明都被编译器认为是注释,这种注释不能换行。C++中仍然保留了传统C语言的注释风格/*……*/。 C++也可采用格式化输出的方法: #include ...
此实例解释了new动态创建多维数组的用法,还有包涵了多维数组指针的用法···