c++内存示例27独针
Posted 周三石
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++内存示例27独针相关的知识,希望对你有一定的参考价值。
#包含 <io流>
#包含 <内存>
构 福 { // 要管理的对象
福() { 输出 << "福 构造器\n"; }
福(常 福&) { 输出 << "福 复制 构造器\n"; }
福(福&&) { 输出 << "福 移动 构造器\n"; }
~福() { 输出 << "~福 析构器\n"; }
};
构 D { // 删除器
D() {};
D(常 D&) { 输出 << "D 复制 构造器\n"; }
D(D&) { 输出 << "D 无-常 复制 构造器\n";}
D(D&&) { 输出 << "D 移动 构造器 \n"; }
空 符号()(福* p) 常 {
输出 << "D 是 删除 a 福\n";
删 p;
};
};
整 主()
{
输出 << "例子 构造器(1)...\n";
独针<福> 上1; // 上1 为空
独针<福> 上1b(空针); // 上1b 为空
输出 << "例子 构造器(2)...\n";
{
独针<福> 上2(新 福); // 上2 现在占有 福
} // 福 被删除
输出 << "例子 构造器(3)...\n";
D d;
{ // 删除器类型不是引用
独针<福, D> 上3(新 福, d); // 复制删除器
}
{ // 删除器类型是引用
独针<福, D&> 上3b(新 福, d); // 上3b 保有到 d 的引用
}
输出 << "例子 构造器(4)...\n";
{ // 删除器不是引用
独针<福, D> 上4(新 福, D()); // 移动删除器
}
输出 << "例子 构造器(5)...\n";
{
独针<福> 上5a(新 福);
独针<福> 上5b(标::移动(上5a)); // 所有权转移
}
输出 << "例子 构造器(6)...\n";
{
独针<福, D> 上6a(新 福, d); // 复制 D
独针<福, D> 上6b(标::移动(上6a)); // 移动 D
独针<福, D&> 上6c(新 福, d); // D 是引用
独针<福, D> 上6d(标::移动(上6c)); // 复制 D
}
#如 (__c++ < 201703L)
输出 << "例子 构造器(7)...\n";
{
动针<福> 上7a(新 福);
独针<福> 上7b(标::移动(上7a)); // 所有权转移
}
#结束如果
输出 << "例子 数组 构造器...\n";
{
独针<福[]> 上(新 福[3]);
} // 删除三个 福 对象
}
例子 构造器(1)...
例子 构造器(2)...
福 构造器
~福 析构器
例子 构造器(3)...
福 构造器
D 复制 构造器
D 是 删除 a 福
~福 析构器
福 构造器
D 是 删除 a 福
~福 析构器
例子 构造器(4)...
福 构造器
D 移动 构造器
D 是 删除 a 福
~福 析构器
例子 构造器(5)...
福 构造器
~福 析构器
例子 构造器(6)...
福 构造器
D 复制 构造器
D 移动 构造器
福 构造器
D 无-常 复制 构造器
D 是 删除 a 福
~福 析构器
D 是 删除 a 福
~福 析构器
例子 构造器(7)...
福 构造器
~福 析构器
例子 数组 构造器...
福 构造器
福 构造器
福 构造器
~福 析构器
~福 析构器
~福 析构器
以上是关于c++内存示例27独针的主要内容,如果未能解决你的问题,请参考以下文章