c++智能指针怎么调用
短信预约 -IT技能 免费直播动态提醒
在 C++ 中,智能指针通常有以下几种使用方式:
-
使用 std::shared_ptr:
#include <memory> int main() { std::shared_ptr<int> ptr = std::make_shared<int>(10); *ptr = 20; // 通过指针访问对象 std::cout << *ptr << std::endl; // 输出 20 return 0; }
-
使用 std::unique_ptr:
#include <memory> int main() { std::unique_ptr<int> ptr = std::make_unique<int>(10); *ptr = 20; std::cout << *ptr << std::endl; return 0; }
-
使用 std::weak_ptr:
#include <memory> int main() { std::shared_ptr<int> sharedPtr = std::make_shared<int>(10); std::weak_ptr<int> weakPtr = sharedPtr; std::cout << *weakPtr.lock() << std::endl; // 输出 10 sharedPtr.reset(); if (weakPtr.expired()) { std::cout << "shared_ptr 已经被释放" << std::endl; } return 0; }
需要注意的是,当使用 std::shared_ptr 时,可以通过引用计数追踪对象的所有权,而 std::unique_ptr 则是通过独占所有权来实现的。而 std::weak_ptr 则允许对对象进行弱引用,不会增加引用计数,也不会阻止对象被销毁。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341