>>570
class CAaa;
と書いただけではクラス CAaa は、まだ「不完全定義」なので、
コンパイラは、そのポインタに対する delete 文では必ずエラーにしなければ
ならないに、エラーになって無い事が問題なんです。
クラスの完全定義は必ず、中括弧が必要で、
class CAaa {・・・}; または、
class CAaa : 基本クラスリスト {・・・};
のような形式をとる必要があります。
中括弧が無い、class CAaa; の形式は、クラス CAaa に対する宣言であり、
定義ではないという言い方もされます。
「不完全」なクラス T は、T *p; のような形式で、ポインタを定義/宣言することは
可能ですが、T a; のいうな実体定義は出来ませんし、delete p; はエラーになる
のが言語仕様で決まっています。