#include "stdafx.h"
#include <iostream>
#include <memory>
using namespace std;
class test {
public:
test(int val)
:m_val(val)
{};
~test() {};
int getVal() { return m_val; }
void setVal(int val) { m_val = val; }
private:
int m_val;
};
class share {
public:
share(shared_ptr<test> t)
:m_test(t) {};
~share() {};
void setTestVal(int val) {
m_test->setVal(val);
return;
}
int getTestVal() { return m_test->getVal(); }
private:
shared_ptr<test> m_test;
};
int main()
{
std::shared_ptr<test> p1 = make_shared<test>(1);
std::shared_ptr<share> p2 = make_shared<share>(p1);
std::shared_ptr<share> p3 = make_shared<share>(p1);
p2->setTestVal(2);
cout << p3->getTestVal() << endl;
}
对同一对象的shared_ptr,读取的数据一致吗?
最新推荐文章于 2023-09-21 10:52:55 发布
本文探讨了C++中智能指针的使用,通过具体示例展示了如何利用shared_ptr实现对象的共享,以及当多个对象引用同一资源时,资源状态的变化如何在所有引用间同步更新。
881

被折叠的 条评论
为什么被折叠?



