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独针的主要内容,如果未能解决你的问题,请参考以下文章

c++内存示例20到地址,用计数,独针

c++内存示例25独针释放,极操作符,比较操作符

c++内存示例05默认删,消灭

c++内存示例28交换,构造参数

c++内存示例19共针,分配器

c++内存示例26位置,左移,等号操作符,重置