忍者ブログ
ADMIN / ENTRY
カレンダー
02 2024/03 04
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
新刊カレンダー
ブログ内検索
プロフィール
HN:
Nina.A
性別:
男性
趣味:
麻雀、ラノベ、漫画
自己紹介:
MJ4や天鳳等でよく麻雀やってます。もし会ったらよろしくです。
ブログは単なるメモ帳となる予定。
C/C++勉強中の大学生雑記
<<  2024/03  >>
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 
[21]  [20]  [19]  [18]  [17]  [16]  [15]  [14]  [13]  [12]  [11
2024/03/19  17:44:19
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2008/11/24  04:13:56

クラスの継承について、最初に本で読んだときによく分からずじまいだった。しかも、その後、クラスの継承を使うこともなくここまできてしまった。今回ちょっと使おうかなと思ったので改めて本を読んでみたが、やはりよく分からない。ということでプログラムを作っていろいろやってみた。

今回は適当に以下のようなクラスを使ってみた。

class Dimension1{
private:
    int x;
    void privateSet(int a){
        x = a;
    }
protected:
    void protectedSet(int a){
        x = a;
    }
public:
    void publicSet(int a){
        x = a;
    }
    int getX(){
        return x;
    }
};

class Dimension2 : public Dimension1{
private:
    int y;
protected:
public:
    void set(int a, int b){
        publicSet(a);
        // protectedSet(a);
        // privateSet(a);
        y = b;
    }
    int getY(){
        return y;
    }
};

クラスの継承というのは、他のクラスを内包するようなクラスを作ることである。内包されているクラスを基本クラス、内包しているクラスを派生クラスという。

クラスの継承の概要図
図:クラスの継承の概要

クラスの継承は以下のように記述する。

class Dimension2 : public Dimension1{};

クラスのメンバのアクセス制御と同様に、クラスの継承にもprivateな継承、protectedな継承、publicな継承がある。上記の継承はpublicな継承である。privateな継承は以下のように記述する。

class Dimension2 : private Dimension1{};

派生クラスのメンバ関数からは、基本クラスのprotectedなメンバ、およびpublicなメンバにアクセスできる。これは継承の種類によらない。

一方、派生クラス外からの基本クラスのメンバ関数へのアクセスは、継承の種類によってさらに制限される。

privateな継承
図・privateな継承
protectedな継承
図・protectedな継承
publicな継承
図・publicな継承

いろいろ書いたけどあってんのかな? 次もクラスの継承を少し書く予定。

PR
この記事にコメントする
お名前:
タイトル:
文字色:
メールアドレス:
URL:
コメント:
パスワード:   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
Powerd by NINJAブログ / Designed by SUSH
Copyright © メモ帳ブログ All Rights Reserved.
忍者ブログ [PR]