オブジェクトからオブジェクトを宣言しているクラスのデータを参照するには?

解決


臼井  2003-06-26 19:57:27  No: 51605  IP: [192.*.*.*]

C覚えたてで、C++始めたばかりのものです

VC6のMFCで質問がありますOSは200です

プロジェクト名をTestとしています

Aというクラスを作成して
CTestDocのメンバ変数としてAのインスタンスを宣言しています。
そして、Aのメンバ関数でCTestDocが持っているデータを参照したく、
Aの中でCTestDocへのポインタを宣言するためAのヘッダーファイルでCTestDoc.hを
インクルードしたのですが、コンパイルエラーになってしまいます。

AからCTestDocを参照する事は不可能なのでしょうか?
初歩的すぎる内容かと思いますが
ご教授お願いします。

編集 削除
Wanderer  2003-06-26 20:34:04  No: 51606  IP: [192.*.*.*]

循環参照になるので A.h に CTestDoc.h をインクルードし
てはだめでしょうね。以下のようにしておいて、A.cpp の
方にCTestDoc.h を入れるようにすれば大丈夫です。

class CTestDoc;   //<---  ここ

class A
{
    CTestDoc* m_pDoc:

編集 削除
臼井  2003-06-26 21:24:19  No: 51607  IP: [192.*.*.*]

どうも有難うございます、できました。
今まで分からなくて循環参照というのにならないようにクラス関係構成してたのにたった一行でOKだなんて(TT
たすかりました。

編集 削除
臼井  2003-06-27 00:36:00  No: 51608  IP: [192.*.*.*]

ごめんなさい、ダメみたいです
御指示通り
class CTestDoc;   //<---  ここ
class A
{
    CTestDoc* m_pDoc:
とやったのですが
A.cppで
m_pDoc=NULL;
等はOKなのですが
m_pDoc->メンバ変数;
とやると認識できない型CTestDocが使われています  とでます

Aのメンバ変数CTestDoc* m_pDoc:にはドキュメントのポインタを渡しているのですが
どこがいけないのでしょうか?

編集 削除
Wanderer  2003-06-27 07:58:35  No: 51609  IP: [192.*.*.*]

A.cpp に CTestDoc.h をインクルードしていますでしょうか?

編集 削除
臼井  2003-06-27 19:17:13  No: 51610  IP: [192.*.*.*]

インクルードしてませんでした、
簡単な事を何度も教えていただいてありがとうございました。

編集 削除