相关疑难解决方法(0)

有哪些C++智能指针实现?

比较,优点,缺点和何时使用?

这是从垃圾收集线程中衍生出来的,我认为这是一个简单的答案,它产生了很多关于某些特定智能指针实现的评论,所以看起来值得开始一篇新帖子.

最终问题是C++中智能指针的各种实现是什么,它们如何比较?只是简单的利弊或异常,并找到你可能认为应该工作的东西.

我已经发布了一些我已经使用过或者至少掩饰过的实现,并考虑使用下面的答案,并且我对它们的差异和相似性的理解可能不是100%准确所以请随意根据需要检查或纠正我.

目标是了解一些新的对象和库,或者纠正我对已经广泛使用的现有实现的使用和理解,并最终为其他人提供合适的参考.

c++ smart-pointers c++-faq

121
推荐指数
2
解决办法
3万
查看次数

C++:如何验证已删除的指针

我正在大学里学习C++中的指针.我编写了一个程序,它是一个二进制对象树,指向一个链接的子对象列表.如果我甚至是正确的措辞.无论如何,我的程序似乎工作正常,但我无法绕过如何测试指针删除.

例如,我对二叉树的单个对象的删除函数是:

    void EmployeeRecord::destroyCustomerList()
    {
        if(m_oCustomerList != NULL)
        {
            delete m_oCustomerList;
            m_oCustomerList = NULL;           
        }
    }
Run Code Online (Sandbox Code Playgroud)

打印我的树时,所有内容都会填充并正确取下(意味着每次删除节点时树都保持不变)...但是如何确认解除分配的内存会发生什么?我知道,因为我将指针*m_oCustomerList设置为NULL,我可以测试先前填充的对象上的NULL值,但实际内存会发生什么?

我正在使用Visual Studio/C++并且已经读过调试器将使用从0xCC开始的代码来释放内存......但我似乎无法弄清楚如何使用该信息.

c++

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

标签 统计

c++ ×2

c++-faq ×1

smart-pointers ×1