1. ホーム
  2. c++

[解決済み] 私的相続、公的相続、保護相続の違いについて

2022-03-16 07:28:54

質問

<ブロッククオート

とはどのような違いがあるのでしょうか? public , private および protected を継承しています。 C++?

SOで見つけた質問は、すべて具体的なケースを扱っています。

解決方法は?

その答えとして、まず、memberのアクセサを私の言葉で説明したいと思います。すでにご存知の方は、見出しの "next:" まで読み飛ばしてください。

私が知っているアクセサーは3つです。 public , protectedprivate .

させる。

class Base {
    public:
        int publicMember;
    protected:
        int protectedMember;
    private:
        int privateMember;
};

  • を意識しているもの全て Base は、次のことも知っています。 Base には publicMember .
  • 子供たち(とその子供たち)だけが知っていること Base には protectedMember .
  • 以外にはありません。 Base を意識しています。 privateMember .

is aware of"とは、「存在を認め、アクセスすることができる」という意味です。

次をご覧ください。

public、private、protectedの継承でも同じことが言えます。あるクラスについて考えてみましょう。 Base というクラスと Child を継承している Base .

  • もし、継承が public を意識しているものはすべて BaseChild も認識しています。 Child を継承しています。 Base .
  • もし、継承が protected のみです。 Child を継承していることを認識しています。 Base .
  • もし、継承が private 以外のものは使用できません。 Child は、その継承を意識している。