QVector的push_back导致程序崩溃,什么原因?
在我的代码中有一个:复制代码QVector <Router> RouterList其中的Router是自定义的一个类,但是当我的代码中走到 Router Router2Add; …… RouterList.push_back(Router2Add); //添加。的时候,程序就崩溃了,调试的时候跟踪到了qvector.h的第521行,代码是这样的:template <typename T>void QVector<T>::append(const T &t){ if (d->ref != 1 || d->size + 1 > d->alloc) { const T copy(t); realloc(d->size, QVectorData::grow(sizeOfTypedData(), d->size + 1, sizeof(T), QTypeInfo<T>::isStatic)); if (QTypeInfo<T>::isComplex) new (d->array + d->size) T(copy); else d->array[d->size] = copy; } else { if (QTypeInfo<T>::isComplex) new (d->array + d->size) T(t); else d->array[d->size] = t; } ++d->size;}其中的 if (d->ref != 1 || d->size + 1 > d->alloc) {这就是第521行。调试器显示,copy()函数的参数t跟我传进去的Router2Add是一样的,但是copy的结果却不一样。请问这是什么原因呢?还想问一下,copy是不是相当于Router的拷贝构造函数?我用的是QT4.5。