0

我有这样的课:

class OBJ{...};

class A
{
   public:
   vector<OBJ> v;
   A(int SZ){v.clear(); v.reserve(SZ);}
};

A *a = new A(123);
OBJ something;
a->v.push_back(something);

这是我的代码的简化版本。问题是在调试模式下它工作得很好。但在发布模式下,它会在“push_back”行崩溃。(所有优化标志都关闭)我在发布模式下调试它,问题出在A的构造函数中。向量的大小对于虚拟值来说非常大,当我清除它时,它不会改变......

你知道为什么吗?

谢谢,

4

1 回答 1

0

我可以猜到 - 我会说 OBJ 可能没有正确实现的复制构造函数和/或赋值运算符和析构函数。

于 2010-05-27T19:24:10.153 回答