• 締切済み

現在のクラスを生成したクラスに渡したい

親クラスで生成した子クラス(ダイアログ)から親クラス(ダイアログ)の関数などを使えるようにしたいと思っております。 ちなみに継承クラスで親クラスの関数を使うのではなく、親クラスそのもの(ダイアログ表示)を子クラスから変更できるようにしたいです。 (簡単になりますが…)プログラムの構成は以下のようになっており、thisポインタを渡すか所でエラーが起こってしまいます。 ------------------------------------------------ class AAA { BBB *b; void classBBB{ b = new BBB(this); // こういうことがしたいが、できない void fun( int a ); // ダイアログの表示が変更する(予定) }; class BBB { AAA *a; BBB(AAA *pDlg){ a==pDlg; } void fun(){ int b; a->fun(b); } // 親クラスの関数を呼び出したい }; ------------------------------------------------ ただし、class Aとclass Bを生成する上位階層のプログラム構築をすることはなしとします。 ------------------------------------------------ こんな感じ AAA *a = new AAA(); BBB *b = new BBB(a); ------------------------------------------------ どうしてもclass AAAからclass BBB呼び出したいと思ってます。 何か良い解決法があれば、教えていただきたいです。 宜しくお願い致します。

みんなの回答

回答No.2

こんなんでいいんかの? #include <iostream> class BBB; class AAA { private: BBB *b; public: void classBBB(); void fun(int a); void bfun(); }; class BBB { private: AAA *a; public: BBB(AAA *pDlg){ a = pDlg; } void fun() { int b =123; a->fun(b); } }; void AAA::classBBB() { b = new BBB(this); } void AAA::fun(int a) { std::cout << "AAA::fun(" << a << ")\n"; } void AAA::bfun() { b->fun(); } int main() { AAA aaa; aaa.classBBB(); aaa.bfun(); }

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

class宣言の中にメンバ関数のコードを書かなきゃいいんでは。

関連するQ&A

専門家に質問してみよう