如何实例化并附加到指向我的对象的指针的QVector

时间:2015-12-07 05:08:45

标签: c++ qt pointers qvector

我需要实例化并附加到指向我的对象的指针的QVector

我的标题说 QVector<Stuff*> myResults;

通过评论内容,我将其缩小到我对QVector的使用

1)当我尝试

    myResults.append(stuff);

2)当我尝试

    myResults.push_back(stuff);

我得到了

First-chance exception at 0x00007FF652523520 in LibTestd.exe: 0xC0000005: Access violation reading location 0x0000000000000030.

我已经复制并粘贴了不同的方法来实例化我的qvector无济于事。包括来自doc.qt.io的示例,其中包含0和50 QVector<Stuff> vector(0);

我试过让QVector中的类类型不是指针和解引用的东西。

我真的不知道出了什么问题,但我确信这与我滥用指针有关。有人可以给任何......指针吗? :P

顺便说一句,如果它是相关的,那么东西翻译单元(我的意思是,同名的Stuff.h和Stuff.cpp文件(名称是翻译单位?))< / em>中有两个类,Crap类和Stuff类,Stuff不存在垃圾。我的构造函数中有初始化列表。

同样顺便说一句,我实例化了这样的内容Stuff * stuff = new Stuff()

2 个答案:

答案 0 :(得分:0)

如果没有剩下的代码,很难提供帮助,但是。:

QVector不会对其给定的数据进行处理,因此请在执行时检查myResults变量的有效性。

是的,我知道它不是一个指针,而是一个类级变量,仍然检查它,特别是如果你在可能运行你的对象的析构函数的任何线程上使用processEvents()(或等效的)。

如果您发现myResults变量无效(指向0xfeeefeee +在调试版本中稍微多一点,和/或在&#34;无法读取&#34;内存,请检查是否有析构函数对象在访问冲突之前运行。

对于Qt使用processEvents()的ppl new或甚至新手来说很常见,并且不会重新考虑导致其对象被破坏的插槽可能会在processEvents()调用期间运行。

答案 1 :(得分:0)

超级大规模的金发时刻&gt;。&gt; 创建尝试使用Qvector的类的类...我很想忘了实例化它..... *让我感到困惑的是多久这让我很困惑* 但是耶!新问题被迷惑了!还有其他问题。