我有一个这样的课程:
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的构造函数中。 矢量的大小是非常大的虚拟值,当我清除它时,它不会改变......
你知道为什么吗?
谢谢,
答案 0 :(得分:0)
我猜 - 我会说OBJ可能没有正确实现的复制构造函数和/或赋值运算符和析构函数。