c++ - 从 shared_pointer 创建weak_pointer 并重用基本指针
问题描述
为什么wp5
不指向Integer
其值为 的50
?
#include <memory>
#include <iostream>
#include "DoubleLinkedList.h"
class Integer {
private:
int number;
public:
Integer(int number) : number(number) {}
int get() { return number; }
};
int main() {
Integer i1(10);
Integer i2(20);
i1 = i2;
std::cout << "i1 = " << i1.get() << std::endl;
Integer* i3 = new Integer(30);
std::shared_ptr<Integer> sp3 = std::make_shared<Integer>(i1);
std::shared_ptr<Integer> sp4 = std::shared_ptr<Integer>(new Integer(40));
std::weak_ptr<Integer> wp5 = std::shared_ptr<Integer>(new Integer(50));
std::weak_ptr<Integer> wp6 = sp4;
return 0;
}
有没有办法创建一个shared_pointer<Integer>
或一个weak_pointer<Integer>
用作*i3
指向的基本指针Integer(30)
?
解决方案
推荐阅读
- python - 在测试执行期间重定向文件中的所有类型的异常和标准输出日志 - Python 3
- notepad++ - notepad++ 用户定义语言折叠打开和关闭
- i2c - 什么是广播地址,它在 I2C 中的用途是什么?
- python - 为什么 Python 只使用 4% 的 CPU?
- git - 更改推送到 GitHub 的提交...删除文件
- python - 在 Python 中从 .xlsx 文件中读取图表
- json - 使用 JSON 数组访问数据
- php - Imagemagick - 不知道如何解决
- wordpress - 403响应代码与http但不是在wordpress上的https
- python - 分组后如何获取所有行的数据框?