std::auto_ptrと不完全クラス
Posted: 2012年11月04日(日) 09:29
メンバ変数にstd::auto_ptrを使用し、ソースファイルの依存性を下げるために前方宣言だけで定義するようにしたのですが、
警告が出てしまいます・・・
warning C4150: 'C_Drawer' 型を削除するため delete 演算子が呼び出されましたが、定義がありません。
ソースは以下の通り
class C_Drawer; の変わりにヘッダーのインクルードをしてあげれば警告は消えるのですが、
ヘッダーの依存性が高まってしまいます。
ヘッダー内での別のヘッダーファイルのインクルードをあまりしたくないという、私の変な考えがいけないのかもしれませんが;;
依存性が低まれば、コンパイル時間が短くできるので、ただそれだけの理由なのですが;;
普通のポインタを使えば解決されるのですが、メモリリーク等を考えるとstd::auto_ptrを使いたいので、
解決法が分かる方はアドバイスを下さると幸いです。
警告が出てしまいます・・・
warning C4150: 'C_Drawer' 型を削除するため delete 演算子が呼び出されましたが、定義がありません。
ソースは以下の通り
class C_Drawer;
class C_ItemObj{
private:
bool m_Flag;
const std::auto_ptr< C_Drawer > mc_Drawer;
void MoveProcess();
void CheckOverArea();
void FadeProcess(); // 回収された場合
public:
C_ItemObj();
// 初期化
void Init();
// 生成時の初期化
void CreateInit( double x, double y, double ang, double sp, int color );
};
ヘッダーの依存性が高まってしまいます。
ヘッダー内での別のヘッダーファイルのインクルードをあまりしたくないという、私の変な考えがいけないのかもしれませんが;;
依存性が低まれば、コンパイル時間が短くできるので、ただそれだけの理由なのですが;;
普通のポインタを使えば解決されるのですが、メモリリーク等を考えるとstd::auto_ptrを使いたいので、
解決法が分かる方はアドバイスを下さると幸いです。