忍者ブログ
ADMIN / ENTRY
カレンダー
08 2017/09 10
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++勉強中の大学生雑記
<<  2017/09  >>
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 
[22]  [21]  [20]  [19]  [18]  [17]  [16]  [15]  [14]  [13]  [12
2017/09/25  11:34:14
×

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

2008/11/24  13:31:39

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

クラスを継承すれば、当然コンストラクタやデストラクタも継承される。つまり、派生クラスのオブジェクトを生成すれば、派生クラスのコンストラクタと基本クラスのコンストラクタの両方が実行される。デストラクタも同様である。

そのコンストラクタの実行順序は「基本クラス→派生クラス」の順である。派生クラスのコンストラクタは基本クラスの初期化も含んでいるため、基本クラスの後に実行される。何も記述しなくても基本クラスのコンストラクタは自動実行されるが、基本クラスのコンストラクタに引数を与えたい場合には、初期化リストの部分に記述する。

class Dimension2 : public Dimension1{
public:
    Dimension2() : Dimension1() { // ここで基本クラスのコンストラクタ呼び出し
    }
}

一方、デストラクタの実行順序は「派生クラス→基本クラス」の順に実行される。これも、派生クラスの後処理が基本クラスのメンバに依存することがあることを考えれば自然。

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