c++内存示例07允许从本共享
Posted 周三石
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++内存示例07允许从本共享相关的知识,希望对你有一定的参考价值。
#包含 <内存>
#包含 <io流>
构 好: 标::允许从本共享<好> // 注意:继承
{
共针<好> 取针() {
中 从本共享();
}
};
构 坏
{
// 错误写法:用不安全的表达式试图获得 本 的 共针 对象
共针<坏> 取针() {
中 共针<坏>(本);
}
~坏() { 输出 << "坏::~坏() 调用\n"; }
};
整 主()
{
// 正确的示例:两个 共针 对象将会共享同一对象
共针<好> gp1 = 造共<好>();
共针<好> gp2 = gp1->取针();
输出 << "gp2.用计数() = " << gp2.用计数() << '\n';
// 错误的使用示例:调用 从本共享 但其没有被 共针 占有
试 {
好 不很好;
共针<好> gp1 = 不很好.取针();
} 抓(坏弱针& e) {
// C++17 前为未定义行为; C++17 起抛出 坏弱针 异常
输出 << e.什么() << '\n';
}
// 错误的示例,每个 共针 都认为自己是对象仅有的所有者
共针<坏> bp1 = 造共<坏>();
共针<坏> bp2 = bp1->取针();
输出 << "bp2.用计数() = " << bp2.用计数() << '\n';
} // UB : 坏 对象将会被删除两次
gp2.用计数() = 2
坏弱针
bp2.用计数() = 1
坏::~坏() 调用
坏::~坏() 调用
*** g库c 检查 *** ./测试: 双精 释放 或 崩溃
本人的csdn博客:https://blog.csdn.net/fqbqrr 让我们每天都进步一点. |
以上是关于c++内存示例07允许从本共享的主要内容,如果未能解决你的问题,请参考以下文章