C覚えたてで、C++始めたばかりのものです
VC6のMFCで質問がありますOSは200です
プロジェクト名をTestとしています
Aというクラスを作成して
CTestDocのメンバ変数としてAのインスタンスを宣言しています。
そして、Aのメンバ関数でCTestDocが持っているデータを参照したく、
Aの中でCTestDocへのポインタを宣言するためAのヘッダーファイルでCTestDoc.hを
インクルードしたのですが、コンパイルエラーになってしまいます。
AからCTestDocを参照する事は不可能なのでしょうか?
初歩的すぎる内容かと思いますが
ご教授お願いします。
循環参照になるので A.h に CTestDoc.h をインクルードし
てはだめでしょうね。以下のようにしておいて、A.cpp の
方にCTestDoc.h を入れるようにすれば大丈夫です。
class CTestDoc; //<--- ここ
class A
{
CTestDoc* m_pDoc:
どうも有難うございます、できました。
今まで分からなくて循環参照というのにならないようにクラス関係構成してたのにたった一行でOKだなんて(TT
たすかりました。
ごめんなさい、ダメみたいです
御指示通り
class CTestDoc; //<--- ここ
class A
{
CTestDoc* m_pDoc:
とやったのですが
A.cppで
m_pDoc=NULL;
等はOKなのですが
m_pDoc->メンバ変数;
とやると認識できない型CTestDocが使われています とでます
Aのメンバ変数CTestDoc* m_pDoc:にはドキュメントのポインタを渡しているのですが
どこがいけないのでしょうか?
A.cpp に CTestDoc.h をインクルードしていますでしょうか?
編集 削除インクルードしてませんでした、
簡単な事を何度も教えていただいてありがとうございました。