2011-09-12 6 views
0

あるクラスのあるメンバのは、あるポインタから(同じであるはずですが)別のポインタから同じであるという問題があります。このはおそらくは、コピー建設はどこかに起こったことが、私はそれを見つけることができません/ わかりません。私はすでにブレークポイントがヒットすることは決してありません私は可能なコピー構築のバグを追跡できません

class Foo 
{ 
    Foo(const Foo& foo) 
    { 
     error("Copying a foo: not allowed") ; 
    } 
}; 

をコピー建設ルーチン(以前に未定義)であるもので、エラー/ブレークポイントを追加しました。

私はこのバグを追跡することができますどのようにVS 2010を使用していますか?

+0

あなたはそのブレークポイントに到達したときにそれはあなたのスタックトレースを与えるものではありませんか? – Mysticial

+0

私は実際にそれに達することはありません! – bobobobo

+4

'Foo(const Foo&)'を非公開にして、コンパイルエラーが発生するようにします。 –

答えて

2

あなたのクラスは非コピー可能にするために、私はあなたがそうそれらを作るためにboost::noncopyableを使用することをお勧めします。次に、コピーの建設が許可されないことを確認してくださいます。それが間違って起こった場合、コンパイラはあなたに何かを伝えます。

+1

これは 'boost :: noncopyable'です。アンダースコアはありません。 –

+0

@ K-ballo:私はそれを修正:) –

関連する問題