最近よく利用させて頂いてます。
あるクラスaで宣言、定義したメンバ関数faを、
別のクラスbのメンバ関数fb内で呼び出すことは出来ますか?
クラスaをクラスbに継承するしかないのでしょうか?
メンバ関数について
Re:メンバ関数について
>あるクラスaで宣言、定義したメンバ関数faを、
>別のクラスbのメンバ関数fb内で呼び出すことは出来ますか?
出来たりできなかったりするので、
自分で実際にやってみたらどうでしょうか?
>別のクラスbのメンバ関数fb内で呼び出すことは出来ますか?
出来たりできなかったりするので、
自分で実際にやってみたらどうでしょうか?
Re:メンバ関数について
フレンドクラスなんてものがありませんでしたっけ?
class a {
friend b;
private:
fa();
}
とかやると、フレンドクラスbからはクラスaのメンバにアクセスできるはずです(多分・・・)
ちょっとクラスは苦手なので、自分で試してみて下さい・・・笑
class a {
friend b;
private:
fa();
}
とかやると、フレンドクラスbからはクラスaのメンバにアクセスできるはずです(多分・・・)
ちょっとクラスは苦手なので、自分で試してみて下さい・・・笑
Re:メンバ関数について
フレンドクラスにすると、カプセル化が意味をなさなくなる気がするので
極力使いたくはないですが、
オブジェクト指向で打ち始めたばかりなので、試しに打ってみようと思います。
今の私の知識では、フレンド以外では継承するぐらいしか思いつかないのですが、
継承も多用すると、手続き型のプログラムになってしまいそうなのですが、
どうなのでしょうか?
極力使いたくはないですが、
オブジェクト指向で打ち始めたばかりなので、試しに打ってみようと思います。
今の私の知識では、フレンド以外では継承するぐらいしか思いつかないのですが、
継承も多用すると、手続き型のプログラムになってしまいそうなのですが、
どうなのでしょうか?
Re:メンバ関数について
こうすれば良いのではないでしょうか?
class A{ public: void fa(){ } }; class B{ public: void fb(){ a.fa(); } private: A a; };あるいは、
class A{ public: void fa(){ } }; class B : public A{ public: void fb(){ fa(); } };カプセル化の意味なら後者だと思いますが、ご希望に合っていますでしょうか?
Re:メンバ関数について
無関係なクラスから呼び出す必要があるなら、メンバ関数をpublicにすべきです。
それがどうしてもできない事情があるのなら、その時点ではじめて違うことを考えましょう。
それがどうしてもできない事情があるのなら、その時点ではじめて違うことを考えましょう。
Re:メンバ関数について
まだ完全に構想が固まってないので、イメージしにくいのですが、
出来そうな気がするので、打ってみます。
御津凪さん
サンプルまで打っていただき、ありがとうございます。
出来そうな気がするので、打ってみます。
御津凪さん
サンプルまで打っていただき、ありがとうございます。