0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【C++】継承の種類のまとめ

Last updated at Posted at 2022-04-06

C++にしばらく触れていないと、忘れてしまうことが多いので、まとめました。
(public継承, protected継承, private継承)

各継承の種類の動作

public継承

基本クラスの公開メンバ(public)をそのまま公開メンバとして継承する。  

protected継承

基本クラスの公開メンバと被保護メンバ(protected)が、被保護メンバとして継承される。
(被保護メンバとは、派生クラスからもアクセスできる非公開メンバのこと。)

private継承

基本クラスのメンバが派生クラスの非公開メンバ(private)として継承される。

実際の動作

各継承の種類とメンバの種類の動作の組み合わせを、表にすると、下記のようになります。
スクリーンショット 2022-04-06 20.45.38.png

それぞれの列のタイトルは、下記のコードのそれぞれの部分を意味しています。
(コードのコメントに記載)

#include <iostream>

class Base {
public: // 1. 「public」を「アクセス指定子」と呼ぶ
  std::string str = "Hello World";
};

class Derived : public Base { // 2. 「public」を「継承の種類」と呼ぶ
public:
  void printPublicStr()
  {
    // 3. 「派生クラスから基底クラスのメンバにアクセスしている」と表現する
    std::cout << str << std::endl;
  }
};

int main(void)
{
  Derived derived;

  // 4. 「派生クラスのオブジェクトを用いて外部からアクセスしている」と表現する
  std::cout << derived.str << std::endl;

  return 0;
}
0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?