小编Cla*_*ies的帖子

智能指针(shared_ptr)

我尝试学习如何使用智能指针。我长期使用普通指针,我认为我需要升级我的技能。

我做了一些研究,我了解智能指针的某些方面,但我尝试在一个清晰的项目中实施,以了解智能指针是如何工作的。我尝试:

#include <iostream>
#include <array>
#include <memory>

class Entity
{
public:
    Entity()
    {
        std::cout << "Entity called!" << std::endl;
    }
    ~Entity()
    {
        std::cout << "Entity destroyed!" << std::endl;
    }
    void print() { std::cout << "Message!"; }
};

int main()
{
    std::shared_ptr<int>f1(new int[100]);

    f1.get()[1] = 1;
    std::cout << f1.get()[1];
}
Run Code Online (Sandbox Code Playgroud)

一切都很好,消息是打印的。但是当我尝试:

#include <iostream>
#include <array>
#include <memory>

class Entity
{
public:
    Entity()
    {
        std::cout << "Entity called!" << std::endl;
    }
    ~Entity()
    {
        std::cout << "Entity destroyed!" << std::endl;
    }
    void …
Run Code Online (Sandbox Code Playgroud)

c++ smart-pointers

3
推荐指数
1
解决办法
84
查看次数

标签 统计

c++ ×1

smart-pointers ×1