c++智能指针怎么调用

   2025-02-15 6840
核心提示:在 C++ 中,智能指针通常有以下几种使用方式:使用 std::shared_ptr:#include memoryint main() {std::shared_ptrint ptr = std

在 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 则允许对对象进行弱引用,不会增加引用计数,也不会阻止对象被销毁。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言