c++内存示例05默认删,消灭
Posted 周三石
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++内存示例05默认删,消灭相关的知识,希望对你有一定的参考价值。
#包含 <内存>
#包含 <向量>
#包含 <算法>
整 主()
{
// {
// 共针<整> 共享坏(新 整[10]);
// } // 析构函数调用 删 ,未定义行为
{
共针<整> 共享好(新 整[10], 标::默认删<整[]>
());
} // 析构函数调用 删[] , 好
{
独针<整> 针(新 整(5));
} // 独针<整> 使用 默认删<整>
{
独针<整[]> 针(新 整[10]);
} // 独针<整[]> 使用 默认删<整[]>
// 默认删 能用于需要删除用函数对象的任何场所
向量<整*> v;
对(整 n = 0; n < 100; ++n)
v.压后(新 整(n));
每一(v.开始(), v.尾(), 标::默认删<整>());
}
元<类 T>
常式 空 消灭在(T* p)
{
如 常式 (是数组值<T>)
对 (动 &元素 : *p)
消灭在(的地址(元素));
异
p->~T();
}
// C++17 版本:
// 元<类 T> 空 消灭在(T* p) { p->~T(); }
#包含 <内存>
#包含 <新>
#包含 <io流>
构 跟踪器 {
整 值;
~跟踪器() { 输出 << 值 << " 析构\n"; }
};
整 主()
{
对齐为(跟踪器) 正 符 缓冲[的大小(跟踪器) * 8];
对 (整 i = 0; i < 8; ++i)
新(缓冲 + 的大小(跟踪器) * i) 跟踪器{i}; // 手工构造对象
动 针 = 加载器(重转<跟踪器*>(缓冲));
对 (整 i = 0; i < 8; ++i)
标::消灭在(针 + i);
}
0 析构
1 析构
2 析构
3 析构
4 析构
5 析构
6 析构
7 析构
以上是关于c++内存示例05默认删,消灭的主要内容,如果未能解决你的问题,请参考以下文章