c语⾔new的作⽤,C语⾔中new的⽤法?
温温酱
new是C++中⽤于动态内存分配的运算符,在C语⾔中⼀般使⽤malloc函数。new有三种⽤法:new operator、operator new、
placement new1、new operator:new operator是最常见的⽤法,如 Emp* e1 = new Emp;(Emp是⼀个类) 这⾥new有两种作⽤:分配
空间、初始化对象(调⽤了构造函数)2、operator new:operator new作⽤是只分配空间,不调⽤构造函数,如:Emp* e2 =
(Emp*)operator new(sizeof(Emp));3、placement new:placement new作⽤是在已分配好的空间上初始化对象,不分配空间,调⽤拷贝
构造函数,如:new ((void *)e2) Emp(*tb1);⽰例代码如下:
123456789101112// Emp.h#ifndef _EMP_H_#define _EMP_H_  class Emp{public:Emp();Emp(const Emp& other);~Emp();};#endif / {cout<void main(){using namespace std;// new operator 分配空间,调⽤构造函数Emp* e1 = new Emp;// operator new 只分配空
间Emp* e2 = (Emp*)operator new(sizeof(Emp));// placement new 不分配空间,调⽤拷贝构造函数new ((void *)e2) Emp(*e1);// 显
const的作用⽰调⽤析构函数e2->~Emp();// 仅释放空间,不调⽤析构函数operator delete(e2);// 调⽤析构函数,释放空间delete e1;}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。