问题标签 [qsharedpointer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
784 浏览

c++ - QSharedPointer 指定给 RtlFreeHeap 的地址无效

我有一个大量使用QSharedPointer. 当我执行我的程序时它运行良好,但是当我用 GDB 调试它时它开始抛出错误。"Invalid Address specified to RtlFreeHeap"在以下代码中抛出:

如果我禁用该p->empty()行,程序运行得很好。有任何想法吗?

0 投票
1 回答
10058 浏览

c++ - QSharedPointer 和 QSharedDataPointer 的区别?

这两种类型的指针有什么区别?据我所知,QSharedPointer 可以很好地处理情况,那么 QSharedDataPointer 需要什么?

0 投票
4 回答
2411 浏览

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

我在 Qt 应用程序中有一些间歇性分段错误。我认为问题与我们(不良)使用QSharedPointer. Qt文档指出

QSharedPointer::QSharedPointer ( T * ptr ) : 创建一个指向 ptr 的 QSharedPointer。指针 ptr 由此 QSharedPointer 管理,不得传递给另一个 QSharedPointer 对象在此对象之外删除

我认为我们两者都不能... :/

有没有一种面向对象的方法来强制QSharedPointer不能删除或传递给另一个管理的指针QSharedPointer

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

0 投票
5 回答
281 浏览

c++ - 请解释这个表达式

Test抽象接口类在哪里。该类TestPtr应用作智能指针类。

这是否意味着类TestPtr是从类派生的Test?类测试是否包含在智能指针中?我读到这QSharedPointer是一个模板类。有人可以澄清一下吗?

0 投票
1 回答
1795 浏览

c++ - Qsharedpointer 类

我正在尝试通过以下方式使用智能指针类

我计划将出现的 A* 类替换为 B 类。这种方法正确吗?

0 投票
1 回答
991 浏览

qt - 类'QSharedPointer的构造函数' 被声明为 'explicit' - 如何解决此错误

尝试使用时出现以下错误:

然后在代码中用 CTest 替换 Test*。我错过了什么?

0 投票
1 回答
3222 浏览

qt - QPair 初始化

当我使用以下语句时,

智能指针在哪里ItemB。即 typedefQSharedpointer<Z> ItemB

当我实例化测试时,我应该提供初始化值吗?例如:test Inst1(0,0);

还是QPair自动提供默认构造值?

0 投票
3 回答
2328 浏览

c++ - Qt 智能指针相当于 Boost::shared_ptr ?

Boost::shared_ptr在以前的项目中使用过,现在我想在 Qt 中找到一个智能指针,它可以做相同/相似的事情。由于 Qt 中有许多智能指针类,我想知道使用哪一个。是QSharedPointer吗?

0 投票
2 回答
4038 浏览

c++ - QTcpSocket and deletion

I'm writing a tcp based server using Qt.

I plan this server to be multithreaded, so my tcpserver class inherits from QTcpServer and overrides incomingConnection(). Everything is fine, except when it comes to deleting a user.

The TcpServer class manages a list of QSharedPointer<Client>. When I remove the said client from the list, it gets automatically deleted because of the smart pointer. My Client class owns a QSharedPointer<QTcpSocket> which means that the client's QTcpSocket gets deleted when the client is deleted.

Problem is, it seems that Qt tries to use this socket after its deletion, causing Segmentation Fault.

Should I manages a list for the sockets only, and call deleteLater() on them when I dont need them anymore? Or should I switch my socket's pointer in client class to a normal pointer?

0 投票
1 回答
2123 浏览

c++ - 将 QSharedPointer 与 new[] 一起使用会在 valgrind 中产生“不匹配的 free() / delete / delete[]”

我有以下代码:

在某些时候,QSharedPointer此函数返回的值将超出范围,并且在构造函数中设置的指针将被释放。使用 valgrind 3.6.1,我收到“不匹配的 free()/delete/delete[]”错误。我的使用有什么问题,QSharedPointer还是我只需要忍受这个 valgrind 警告?