gpt4 book ai didi

c++ - 如何防止删除由 QSharedPointer 管理的指针

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:24:01 26 4
gpt4 key购买 nike

我在 Qt 应用程序中有一些间歇性的段错误。我认为问题与我们(错误)使用 QSharedPointer 有关。 Qt Documentation states :

QSharedPointer::QSharedPointer ( T * ptr ) : Creates a QSharedPointer that points to ptr. The pointer ptr becomes managed by this QSharedPointer and must not be passed to another QSharedPointer object or deleted outside this object.

我认为我们都在做不能... :/

是否有 OOP 方法来强制 QSharedPointer 管理的指针不能被删除或传递给另一个 QSharedPointer

最好的解决方案是出现编译错误。

最佳答案

正常的模式是将 new 语句放在智能指针的构造函数中,如下所示:

QSharedPointer<Obj> p (new Obj(2)); 

这样你就永远不会有对裸指针本身的引用。

如果你重构你的代码,让所有新的运算符都在这样的行中,你所有的问题都将得到解决。

关于c++ - 如何防止删除由 QSharedPointer 管理的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4155088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com