- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c++,ある関数のクラスから別のクラスの関数を呼ぶ)
C++で別のクラスの関数を呼び出す方法は?
このQ&Aのポイント
- C++で、あるクラスのメンバ関数から、別のクラスのメンバ関数を呼び出す方法について知りたいです。
- 要件として、元のオープンソースコードを書き換えずに新たな機能を拡張したいと考えています。
- 具体的には、クラスAのメンバ関数aaa()からクラスBのメンバ関数bbb()を呼び出したいですが、どのように実現できるでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Aを極力触りたくないのであれば、あまりカッコよくありませんが、AがBを継承するではどうでしょうか? 提示コードを以下のように書き換えれば、とりあえず期待する動きはすると思います。 //------------------------------------------------------ class B { public: virtual void bbb(); }; //------------------------------------------------------ //------------------------------------------------------ class A: public B{ public: void aaa(); }; //------------------------------------------------------ ※ その他はそのまま
その他の回答 (2)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.2
A::aaa の中で出力する.
質問者
お礼
回答ありがとうございます。 おっしゃる通り、その方法が手っ取り早いです。 ただ、実際にやりたい事は、「this is bbb」という出力の代わりに、莫大なコードを加えたいのです。 Aという元のコードはあまり変更せずに、機能を拡張したいと思ってます。 その辺りを、説明したつもりだったのですが、伝わっていなかったらすみません。
- zwi
- ベストアンサー率56% (730/1282)
回答No.1
継承すれば良いんじゃないの?ってのはダメなのですか?
質問者
お礼
回答ありがとうございます。 既に、クラスBはクラスAを継承していますが。 おっしゃられている意味は、クラスAがクラスBを継承すれば良い、ということでしょうか?
お礼
回答ありがとうございます。 提示していただいたコードで、欲しい結果が得られました。 このとき、クラスBのvirtualはなくても大丈夫なようですね。 本当にありがとうございます。