C++:クラスの概要(2)> クラスの継承について

C++において重要なクラスの継承についてのメモ。

C++のクラスの継承

継承は1つのクラスが他のクラスの性質を受け継ぐための仕組み。

あるクラスを別のクラスが継承する場合、継承される側のクラスを「基本クラス」継承する側のクラスを「派生クラス」と呼ぶ。

基本クラスを継承する形式

class 派生クラス名 : アクセス指定子 基本クラス名 {
    
};

※クラスの定義は最後にセミコロンを忘れないように注意する。

アクセス指定子と範囲

修飾子説明
なしクラス内から使用可能(privateと同じ)
public外部のクラスから使用可能
privateクラス内から使用可能
protectedprivateと同じ(サブクラスからはpublicになる)

基本クラス

class BaseSample {
    int i;
public:
    void set_i(int n);
    int get_i();
};

派生クラス

class DerivedSample : public BaseSample {
    int j;
public:
    void set_j(int n);
    int mul();
};

クラスの継承サンプルコード

#include using namespace std; // 基本クラス class BaseSample { int i; public: void set_i(int n); int get_i(); }; // 派生クラス class DerivedSample : public BaseSample { int j; public: void set_j(int n); int mul(); }; // 基本クラスの変数iを設定 void BaseSample::set_i(int n) { i = n; } // 基本クラスの変数iの値を返す int BaseSample::get_i() { return i; } // 派生クラスの変数jを設定 void DerivedSample::set_j(int n) { j = n; } // 基本クラスの変数iの値に派生クラスの変数jの値を乗算し返す int DerivedSample::mul() { // 基本クラスの公開メンバ関数の呼び出し return j * get_i(); } int main(void) { DerivedSample obj_d; obj_d.set_i(10); obj_d.set_j(20); cout << obj_d.mul(); // 200 が表示される return 0; } [/code]

まとめ

上記クラスの継承サンプルコードでは派生クラス DerivedSample の mul() から基本クラス BaseSample の get_i() を呼び出している。BaseSample の変数iへは直接アクセス出来ないようにしカプセル化を実現している。

siro:chro 無料ゲーム SQN をリリースしました

img_sqn_00

sirochro 初の無料ゲームアプリ SQN をリリースしました。
記事:SQN: iOS 無料ゲームアプリ SQN - Sequential Numbers をリリース
ちょっとした時間に楽しめる完全無料のゲームなっていますので、是非ダウンロードして遊んでみてください。

↓SQN のダウンロードはこちらから

Related Contents

Pickup Contents