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

[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]