【初心者歓迎】C/C++室 Ver.26【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0526デフォルトの名無しさん
2006/04/21(金) 16:45:50これを2つのヘッダファイルに分け、互いにインクルードするようにすると、
#ifndef #defineを使って多重インクルードを防止した場合は片方がインクルードされず、
これを使用しなかった場合は多重インクルードのループが発生してしまいます。
片方のヘッダのインクルード行の前に、クラスの仮宣言(?)を置くか、
2つのクラスをひとつのヘッダにまとめる事で解決できるのですが、好ましくない気がします。
ほかに効果的な解決方法はありませんでしょうか。
現在の状況:ほかのソースにc_dmanager.hをインクルードして使用
c_dmanager.h
#ifndef __C_DMANAGER_H__
#define __C_DMANAGER_H__
//ここに class C_DManager; と記述する事で、エラーは回避できる
#include "c_data.h"
class C_DManager{/*内部略*/};//このクラス内部でC_Dataにアクセス
#endif
c_data.h
#ifndef __C_DATA_H__
#define __C_DATA_H__
#include "c_dmanager.h"
class C_Data{/*内部略*/};//このクラスからC_DManagerにアクセス
#endif
■ このスレッドは過去ログ倉庫に格納されています