1.new的作用
一个操作符,在堆上创建对象,并返回该对象的指针。
2.new的过程
- 根据需要创建的对象,得到大小
- 根据大小,在内存中寻找连续的内存块,隐式调用malloc来分配内存
- 根据情况,调用构造函数来创建对象,malloc不会调用
- 创建完毕后,返回指向该对象的指针
3.new的使用
class Example{
int x;
};
int main(){
int* a=new int;// 4byte
int* b=new int[50];// 50*4 byte
Example* e1=new Example;// 会调用构造函数
Example* e2=(Example*)malloc(sizeof(Example));// 不会调用构造函数
// 要注意delete
delete a;
delete b[];
delete e1;
delete e2;
}