new操作符
new细分为三个步骤:
注意::运算符,作用域运算符。全局,类,命名空间
- 调用operate new(),内部调用malloc()为void*类型
- static_cast转换类型
- 调用构造函数
placement new
placement new允许我们把对象建立在已分配内存的空间上,所以不需要分配空间,但是要指定地址。
delete操作符
delete细分为两个步骤
- 调用operate delete(),内部调用free()
- 析构函数
delete[]的作用是删除含有指针成员,开辟堆空间的类变量数组,如果这个变量数组是普通类型或者没有指针成员的自定义类,那么delete和delete[]的作用一样