- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在 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/
我有一个名为 Message 的树节点类,如下所示: class Message { public: using Ptr = QSharedPointer; public: expli
与哑指针不同,我希望我可以在函数的堆栈上创建一个 QSharedPointer,然后将其作为返回值返回以分配给另一个 QSharedPointer同类型的吧?通常,这样的指针会指向现在超出范围的内存,
在 Qt 4 中我有以下数组: QSharedPointer encrypted(new unsigned char[RSA_size(publickey)]); 如何使用新的 Qt 5 create
我有QVector > DataVec作为大型面向对象项目中一个类的一个领域。程序在代码部分循环执行期间发生内存溢出,其中分配了大内存,由 QSharedPointers 控制。 在程序运行周期中,D
我已经围绕 QTextEdit 编写了一个包装器,以便像使用 QIODevice 一样使用它。我希望能够对同一个 QTextEdit 使用多个包装器,因此我可以对每个包装器使用不同的文本颜色。 为了使
关于如何使用QSharedPointer 对象作为方法参数或方法的返回值,有什么好的做法或规定吗? 按值: LMNode::setParent(QSharedPointer parent) {
我有 C# 背景,但仍在研究 C++ 和 Qt 智能指针。这应该是一个基本问题: 在myClass.h中 QSharedPointer m_flags; 在 myClass.cpp 中,我试图设置(是
我需要使用 QSharedPointer 进行引用计数,但我将在单线程应用程序中使用它,所以我不希望线程安全开销(我认为这是相当贵)。 有没有办法关闭线程安全,或者是否有一个只提供引用计数的等效 Qt
我目前有这样的东西: QSharedPointer Qsharedfoo; 现在我有一个指向 foo 的原始指针,也称为 rawfoo。我怎样才能让 foo point 拥有原始指针并开始指向它。我知
我写了一个小的示例应用程序代码如下。 #include #include #include class INav { public: virtual int getdata() = 0;
我现在有这样的东西 QSharedPointer cv; 这个共享指针用作 cV = QSharedPointer(new QMainWindow(p)); cV->setAttribute(Qt::
我在 Qt 应用程序中有一些间歇性的段错误。我认为问题与我们(错误)使用 QSharedPointer 有关。 Qt Documentation states : QSharedPointer::QS
这几天一直在尝试理解共享指针,但感觉我似乎无法理解。不确定是不是太明显了还是太复杂了。首先,谁能给我一个实际使用共享指针的例子。维基百科上的例子对我来说毫无意义。以及如何将共享指针传递给另一个函数或创
由于历史原因,我使用QSharedPointer在我的软件中。在某些时候,我们想要存储 boost::shared_ptr指向相同的数据,并且应该使 QSharedPointer 的实例保持事件状态.
我的应用程序包含几个这样的函数: void SomeClass::set_data_provider(DataProvider *data_provider) { connect(data_p
我有两个 QSharedPointer,我可以使用 operator== 来检查它们是否指向同一个对象 QSharedPointer1 == QSharedPointer2 或者我必须写 QShare
我正在使用 Qt 4.7.4(64 位)开发一个 gui proram。我已尝试按如下方式隔离问题: 我有一个窗口:class PreferencesWindow : public QMainWind
问题是,我有一个 QSharedPointer 的 QVector,我想将它们的一部分放入我的 QCache。如何插入指向 QCache 的共享指针?如果我将指针设置为缓存但销毁了 QVector 和
我是 Qt 的新手,在信号内传递 QSharedPointer 时遇到了一些问题。我正在使用两个线程(UI 和一个 worker)。工作人员使用包含自定义 QObject 的 QSharedPoint
在我的项目中,我创建了 QObject 实例并赋予它们父子关系。我还想用 QSharedPointer 实例跟踪一些对象。 当通过delete childObject; 或delete parentO
我是一名优秀的程序员,十分优秀!