「継承」の版間の差分

提供: C++入門
移動: 案内検索
(ページの作成:「<!-- vim: filetype=mediawiki --> 読み方 ;継承:けいしょう ;inheritance: いんへりたんす __TOC__ == 概要 == C++における継承(inheri...」)
 
 
行73: 行73:
 
void B::x()
 
void B::x()
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
== 継承とコンストラクタとデストラクタ ==
 +
 +
[[クラス]]には、[[コンストラクタとデストラクタ]]があります。
 +
 +
[[継承]]における [[コンストラクタとデストラクタ]] については、以下を参照してください。
 +
 +
* [[継承とコンストラクタとデストラクタ]]
 +
* [[継承と仮想デストラクタ]]
  
 
== 関連項目 ==
 
== 関連項目 ==
  
 +
* [[継承とコンストラクタとデストラクタ]]
 +
* [[継承と仮想デストラクタ]]
 
* [[クラス]]
 
* [[クラス]]
 
* [[仮想関数]]
 
* [[仮想関数]]
 
* [[純粋仮想関数]]
 
* [[純粋仮想関数]]
 
* [[オーバーライド]]
 
* [[オーバーライド]]

2013年3月24日 (日) 02:08時点における最新版


読み方

継承
けいしょう
inheritance
いんへりたんす

概要

C++における継承(inheritance)とは、クラス継承することを指します。 クラス継承することで、新しいクラスを作ることができます。

一部の実装を変更したいときに、有効です。

継承のメリット

  • コードを再利用できる。
  • コードを汎用化することで、コードの重複を防ぎ、ソースコードのメンテナンス性が上がる。

継承のデメリット

  • 親クラスの実装変更により、サブクラスに影響を及ぼす可能性がある。

継承の例

ソースコード extends_3.cpp

#include <iostream>
using namespace std;
 
class B {
        public:
                void x() {
                        cout << __PRETTY_FUNCTION__ << endl;
                }
                void f() {
                        cout << __PRETTY_FUNCTION__ << endl;
                }
};
 
class C1 : public B {
        public:
                void f() {
                        cout << __PRETTY_FUNCTION__ << endl;
                }
};
int main(int argc, char const* argv[])
{
        C1 c1;
 
        c1.f ();
        c1.x ();
 
        return 0;
}

コンパイル

g++  extends_3.cpp -o extends_3

実行例

% ./extends_3
void C1::f()
void B::x()

継承とコンストラクタとデストラクタ

クラスには、コンストラクタとデストラクタがあります。

継承における コンストラクタとデストラクタ については、以下を参照してください。

関連項目