VisualC++ 相談室【9】
■ このスレッドは過去ログ倉庫に格納されています
0249デフォルトの名無しさん
NGNGたとえば、Aというクラスがあって、そこから派生したBという
クラスがあるとするわな。それで、
B *pB = new B;
A *pA = (A *)pB;
delete pA;
なんつーことをする時に、Bのデストラクタが仮想関数になって
いないと、delete時にクラスBのデストラクタが呼ばれない。Bの中で
メモリをアロケートしてたりすると、そこでリークしてしまう罠。
全然VC++の話じゃないが、まぁそういうことだ。デストラクタは
virtual指定しておくべし。
■ このスレッドは過去ログ倉庫に格納されています