标签:pre 含义 编译 运算符 自身 学习 说明 对象数组 开始
new 是C++ 中的关键字,有两个含义
operator new
提供一个特定的内存分配格式,返回在存储空间上构造的对象或对象数组的一个 纯右值 指针。
语法
说明
()
和 {}
初始化方式,可以包括 auto decltype(auto)
等占位类型说明符char* ptr = new char[sizeof(T)]; // 分配内存
T* tptr = new(ptr) T; // 在已分配存储中构造(“布置”)
tptr->~T(); // 销毁
delete[] ptr; // 解分配内存
一些注意点
new int * 1
实际上是 int
先结合 *
,(这个会编译失败)。operator new
来完成,对象的大小可以在编译期得到 (开优化),之后进行对象的构造,构造过程的规则无特殊之处。new 表达式通过调用 operator new
来分配内存,分配对象数组为 operator new[]
.
C++ 自身提供了全局的函数(以::
开始),和用户自定义的替换函数,如果 new T;
中T为类类型,则从T的类作用域中开始查找替换函数。
基本的函数格式如下:
void* T::operator new ( std::size_t count );
// 过年疫情导致不能出门,在家里学习学习,记点笔记。
标签:pre 含义 编译 运算符 自身 学习 说明 对象数组 开始
原文地址:https://www.cnblogs.com/shuqin/p/12234739.html