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 に答える