他クラスのメンバ関数の使用

[戻る]
BOB 2002/03/18(月) 15:03:55
(環境)
VC++6(SP5)、Windows2000、MFCのSDIでデータを表示する画面を作成しています。

(質問)
クラスのメンバ関数の使用方法について質問です。
例えば、A・Bという二つのクラスがあって、Aクラスのメンバ関数をBクラスの関数内で呼び
出そうとしたい場合はどうしたらよいのでしょうか?

作成しようとしているのが、AクラスにはMSFLEXGRIDの行挿入関数がメンバ関数として、定義
されています。それをBクラス(C***Viewなのですが)で呼びたいのです。

よろしくお願いします。

sugar 2002/03/18(月) 15:15:05
Bクラス内でAクラスの関数をコールしたいのなら、
その場所でAクラスを認識している必要があります。
例えば、Aクラスのポインタであったり、
  CAClass *a;
  a->Hoge();

AクラスのインスタンスをBクラスのメンバ変数として保有しているとか。
  CAClass m_a;
  m_a.Hoge();

あるいはA、B間で継承関係があると、また状況が変わってくるでしょう。
方法はいくつもあるので、設計次第でどの方法がベターなのかが決まるのだと思います。

不良PG 2002/03/18(月) 15:57:47
sugarさんが書かれていますので

ちょっと追加しますと

Aクラスのメンバ関数がスタッティックな関数でパブリックメンバなら

B:Hoga()
{
    A::Hoge
}

こんな感じで呼べますね

古いスレッドには追加発言できません。