////////////////////////////////////////////////////////////////////
━━━[PR]━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┓
┃ま┃だ┃転┃職┃は┃す┃る┃な┃！┃ナ┃ッ┃ク┃ス┃タ┃ッ┃フ┃！┃
┗━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┛
一部上場企業のナックの人材紹介部門☆あなたのキャリアをしっかり相談
【無料転職サポートはこちら】
http://af1.mag2.com/m/af/0000008658/001/s00000005211001/019 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[PR]━━
////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


    (C)KAB-studio 1999 - 2006 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz

    送信日： 2006/11/27(Mon) No.384
    配信数： 1679
    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
// NEW!!
http://www.kab-studio.biz/index.html

2006/11/27 (Mon)
　ほとはー外伝３にP.81を追加！
[ 三人合体ホットハーブ 外伝３ 【ワタシ の キロク】 ]
http://www.kab-studio.biz/Comic/HotHerbA3/index.html

2006/11/27 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
17.16 純粋仮想関数と抽象クラス
17.17 関数ポインタの代わりとしてのポリモーフィズム
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


////////////////////////////////////////////////////////////////////
// ちょお普通な日記
http://www.kab-studio.biz/nikki2/index.html

2006/11/19 (Sun)
　１１時半起き。回復力落ちてる。昼過ぎまでぐだー。定期更新と
KAB-studio.h 送信予約とアニメ感想書き。Wiiの予約が昨日で良かった。

2006/11/20 (Mon)
　１０時半に起きてラクガキ描いてうたわれクリアしてプールには行かず
以上。微妙に体調良くない。

2006/11/21 (Tue)
　昨日は４時まで風雅、舞い書き。１１時半起き、って遅すぎ。メインは
ほとはー外伝３描き。夜はプール。ダイエットに疲れてきた。

2006/11/22 (Wed)
　ほとはー外伝３描き。ファミコンミニ版ゼルダの伝説。夜はプール。
食事制限の内容。

2006/11/23 (Thu)
　寝る時間がずれる。体調最悪。プールも休む。勤労感謝の日。

2006/11/24 (Fri)
　ほとはー外伝３描き。午前中は本屋。午後はぐだー。深夜の作業効率が
いい分、昼が駄目？

2006/11/25 (Sat)
　夜中にほとはー外伝３描き。今日もぐだー。Wii体験会には行かず。あと
ぷらとわ書き。ぷらとわをPHPで再構成予定。


////////////////////////////////////////////////////////////////////
// かぶろぐ。
http://d.hatena.ne.jp/kab_studio/

2006/11/19 (Sun)
http://d.hatena.ne.jp/kab_studio/20061119
お、起き……
[KAB-studio]ぷらとわ追加。
[KAB-studio][ほとはー]ほとはー外伝３ P.80
[アニメ]「牙」 第34話「巻き起こる戦火」
[アニメ]おねがいマイメロディ〜くるくるシャッフル！〜 
　第34話「あの頃に戻れたらイイナ！」
[アニメ]乙女はお姉さまに恋してる 
　第7話「小っちゃな妹（かな）と大きなリボン」
[アニメ]くじびきアンバランス 第7話「えらいひとのはなしをきく。4点」
[アニメ]Gift 〜eternal rainbow〜 第7話「幸せの意味」

2006/11/20 (Mon)
http://d.hatena.ne.jp/kab_studio/20061120
起きた。
[絵][版権物イラスト]コードギアス・C.C.とルルーシュ
プールお休み。
[うたわれるものPS2]とりあえずクリア。
[アニメ]金色のコルダ 第8話「こころ紡ぐカノン」
[アニメ]夜明け前より瑠璃色な Crescent Love 第7話「お姫様の許婚」
[アニメ]ギャラクシーエンジェる〜ん 第8話「恐怖！雨の日のコーる〜ん」

2006/11/21 (Tue)
http://d.hatena.ne.jp/kab_studio/20061121
起きた。
[水泳ダイエット]11月8回目
[アニメ]BLACK BLOOD BROTHERS 第8話「護衛者」
[アニメ]N・H・Kにようこそ！ 第20話「冬の日にようこそ！」
[アニメ]Pumpkin Scissors 第8話「雪原に燃えて」

2006/11/22 (Wed)
http://d.hatena.ne.jp/kab_studio/20061122
起きた……。
[水泳ダイエット]11月9回目
[アニメ]DEATH NOTE 第8話「目線」
[アニメ]ブラックラグーン 第20話「The Succession」
[アニメ]ネギま！？ 第8話「先生、私たちをオトナにしてください」

2006/11/23 (Thu)
http://d.hatena.ne.jp/kab_studio/20061123
起きた
なにぃ！？
プールはお休み。
[アニメ]奏光のストレイン 第5話「尽きせぬ恩讐」
[アニメ]武装錬金 第8話「寄宿舎の夜」

2006/11/24 (Fri)
http://d.hatena.ne.jp/kab_studio/20061124
起きた……。
体調悪……。
[買]コミックス購入。
[きらら]まんがタイムきららフォワード Vol.3
[買][アニメ]攻殻機動隊 STAND ALONE COMPLEX Solid State Society
[アニメ]あさっての方向。 第8話「あさっての方向」
[アニメ]すもももももも〜地上最強のヨメ〜 第8話「嵐を呼ぶ後輩」

2006/11/25 (Sat)
http://d.hatena.ne.jp/kab_studio/20061125
起きた。
[きらら]まんが4コマKINGSぱれっと Vol.2
[アニメ]彩雲国物語 第28話「案ずるより産むが易し」
[アニメ]おとぎ銃士 赤ずきん 第22話「花嫁はラプンツェル」
[アニメ]ふしぎ星の☆ふたご姫 Gyu! 
　第35話「トーマの人情☆思い出の森を守れ」
[アニメ]コードギアス 反逆のルルーシュ 第8話「黒の騎士団」


////////////////////////////////////////////////////////////////////
// Ajaxでエロゲーを作るブログ
http://d.hatena.ne.jp/AjaxEroge/

（今週はお休みです）


////////////////////////////////////////////////////////////////////
// 風雅、舞い
http://www.kab-studio.biz/Novel/Fuga/index.html

■　第十五章　濁る澱み、清らかな血溜り　−１２−

「ん、もうちょっと向こう行ってくれる？」
　湯船の真ん中にいる少年を少しどかして、舞も湯船に入る。風呂場そのも
のはあまり広くないのだが、洗い場が狭い分、浴槽は三人は余裕で入れるほ
どの大きさで、舞は少年に向き合うようにして入って、同じように足を伸ば
した。
「はぁ〜、生き返る〜……？」
　見れば、やっぱり少年は両手両足を伸ばす舞をまじまじと見ていた。
「やっぱりなんかえっちなこと思ってる？」
「違いますよ。それに、気にするような年齢差ではないと思いますけど」
「それとこれとは別よ、別」
　そう。
　兄とはだいぶ大きくなるまで一緒にお風呂に入っていたし、雅樹とも、し
た。
　だから、これは慣れとかそういうことではなく、「誰に」ということなん
だと思う。
「それに、あんたってなんか口調が大人びてるし、もしかして本当はすごく
年上なんじゃない？」
「……それは否定しませんけど」
「え”え”っ！！？」
　思わず舞はタオルで体を隠して後ずさる。
「……僕のこと、先生から聞いていないんですか」
「……それは、キミから直接聞いて、って言われた」
「ああ、そうか……」
　約束。リシュネや先生といくつも交わした約束が、ちゃんと守られている。
　それが心地いいからか、少し、話したい気持ちになった。
「僕は培養器の中でこの体になるまで育てられてから、必要な記憶や技術を
直接植え付けられたんです。僕が産まれた――つまり、培養器から出た時に
はすでに、この知能と意志が備わっていた」
「それってつまり――」
「――『子供』という期間をスキップした、ということです」
                                                              (続く)

////////////////////////////////////////////////////////////////////
// JavaA2Z
http://www.kab-studio.biz/Programing/JavaA2Z/index.html

■追加・更新単語

（今週の追加はありません）


////////////////////////////////////////////////////////////////////
━━━[PR]━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┓
┃ま┃だ┃転┃職┃は┃す┃る┃な┃！┃ナ┃ッ┃ク┃ス┃タ┃ッ┃フ┃！┃
┗━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┛
一部上場企業のナックの人材紹介部門☆あなたのキャリアをしっかり相談
【無料転職サポートはこちら】
http://af1.mag2.com/m/af/0000008658/001/s00000005211001/019 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[PR]━━
////////////////////////////////////////////////////////////////////
// #pragma twice
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

　Version 17.29
継承とコンストラクタ

「前回まではスマートポインタの説明をしてきました」
『なんかすっごく複雑だったんだけど』
「まぁ、あれが一番難しい部分って言ってもいいからね……さて、今回から
は、継承関係で憶えておかなきゃいけない点を説明します」
『はーい』
「まずは、継承を使う時の、コンストラクタの注意点について」
『えー？　コンストラクタってただでさえ複雑なのに、まだ難しいことある
の？』
「コンストラクタはかなり複雑なんだよね……まず、単純にコンストラクタ
を各クラスで作る例から」

// Main.cpp
#include <Windows.h>
#include <stdio.h>

// 基本クラス。
class CBase
{
public:
    // コンストラクタ。
    CBase()
    {
        OutputDebugString( "CBase::CBase()\n" );
    }
};

// 派生クラス。
class CDerived : public CBase
{
public:
    // コンストラクタ。
    CDerived()
    {
        OutputDebugString( "CDerived::CDerived()\n" );
    }
};

int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    // CDerived クラスの変数を作ります。
    CDerived cDerived;
    // CBase::CBase()
    // CDerived::CDerived()

    return 0;
}

「このプログラムでは、 CBase クラスが基本クラス、 CDerived クラスが
派生クラスです」
『両方ともコンストラクタ持ってるね』
「ここで、 CDerived クラスの変数を作ります」

    // CDerived クラスの変数を作ります。
    CDerived cDerived;
    // CBase::CBase()
    // CDerived::CDerived()

「するとこのように、まず基本クラスのコンストラクタが呼び出されて、
次に派生クラスのコンストラクタが呼び出されます」
『ホントだ。これって順番決まってるの？』
「うん、決まってるんです。なぜかっていうと、派生クラスは基本クラスを
使えないといけないから。たとえば、 CBase クラスに m_i メンバ変数を
追加したとします」

// 基本クラス。
class CBase
{
protected:
    int m_i;

「このメンバ変数は、 CDerived クラスからは見えているわけだから、当然
CDerived クラスのコンストラクタから使えなきゃいけないんです」

    // コンストラクタ。
    CDerived()
    {
        // 基本クラスのメンバ変数にアクセスします。
        m_i = 100;
    }

『そか、派生クラスから基本クラスは使えるんだもんね』
「だから、派生クラスのコンストラクタが呼び出される時には基本クラスは
使える状態でなきゃいけない、それはつまり」
『コンストラクタが呼ばれてなきゃいけない！』
「というわけです。だから、必ず基本クラスが先、派生クラスが後になるわ
けです」
『なるほどねー』
「さて、次は〈コンストラクタは派生クラスに引き継がれない〉という話」

// Main.cpp
#include <Windows.h>
#include <stdio.h>

// 基本クラス。
class CBase
{
    int m_i;
public:
    // 引数を持つコンストラクタ。
    CBase( int p_i )
        : m_i( p_i )
    {
        OutputDebugString( "CBase::CBase()\n" );
    }
};

// 派生クラス。
class CDerived : public CBase
{
    // 空。
};

int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    // CDerived クラスの変数を作ります。
    CDerived cDerived( 100 );
    // コンパイルエラー：
    // error C2440: (略)

    return 0;
}

「このプログラムはコンパイルエラーになります」
『げげ、ホントだ！　なんで？』
「まず、 CBase クラスには引数を持つコンストラクタがあります」

    // 引数を持つコンストラクタ。
    CBase( int p_i )

「これを使おうと、 CDerived クラスの変数を作るときに以下のように値を
渡しています」

    CDerived cDerived( 100 );

『うん、できそうだと思うけど』
「ところが、コンストラクタは派生クラスには引き継がれないんです。なの
で、 CDerived クラスには CBase クラスの引数を持つコンストラクタが存在
しないことになるんです」
『げ、つまり』

// 派生クラス。
class CDerived : public CBase
{
    // 空。
};

『は本当に空、 CBase クラスの引数を持つコンストラクタも持ってないこと
になるわけね』
「そのため、引数を持つコンストラクタを派生クラスでも使いたい場合には、
同じように派生クラスでも引数を持つコンストラクタを作る必要があります。
たとえば以下のように」

// 派生クラス。
class CDerived : public CBase
{
public:
    // 引数を持つコンストラクタ。
    CDerived( int p_i )
        : CBase( p_i ) // ←基本クラスのコンストラクタを呼び出します。
    {
        OutputDebugString( "CBase::CBase()\n" );
    }
};

「まず、 CDerived クラスにも同じように引数を持つコンストラクタを作り
ます」

    // 引数を持つコンストラクタ。
    CDerived( int p_i )

「次に、このコンストラクタから CBase クラスの引数を持つコンストラクタ
を呼び出します」
『コンストラクタからコンストラクタを呼び出すの！？』
「そう、派生クラスのコンストラクタから基本クラスのコンストラクタを
呼び出すことができるんです。呼び出し方はこんな感じ」

    // 引数を持つコンストラクタ。
    CDerived( int p_i )
        : CBase( p_i ) // ←基本クラスのコンストラクタを呼び出します。

「この〈: CBase( p_i )〉の部分がそう」
『これって、コンストラクタでメンバ変数を初期化するのと同じだね』
「そう、それと同じように〈: 基本クラス名( 引数 )〉って書けばOK」
『これ書かないとどうなるの？』
「引数なしのコンストラクタが呼ばれます」
『んー、この例だとデフォルトコンストラクタが呼ばれるってことね』
「呼ばれないよ。 Version 16.11 ( No.338 ) で説明したように、引数を持
つコンストラクタがあると」
『あ”、デフォルトコンストラクタがなくなるんだ』
「そういうこと。だからこの例ではこうやって基本クラスの引数を持つ
コンストラクタを呼び出さなきゃいけないんです」
『それをしないとコンパイルエラーになる、と』
「あと、この書き方を使えば、基本クラスのコンストラクタがオーバーロード
されていても、どのコンストラクタを使うのか選択できるからね」
『渡す引数でコンストラクタを変えられるってこと？』
「そういうこと。そういう意味でも、この使い方は重要かな」

/*
    Preview Next Story!
*/
『なんでコンストラクタってこんな複雑なの！？』
「 C++ はクラスが普通の変数だからね……」
『え？　それは当たり前だと思うけど』
「当たり前なんだけど、だから複雑になるというか」
『？？？』
「というわけで次回」
＜ Version 17.30 デストラクタを仮想関数にする ＞
『につづく！』
「ま、他の言語の話はいっか」
『？？？？？』


////////////////////////////////////////////////////////////////////
/*                          ご注意！！                            */

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.biz/nikki2/index.html
・購読登録を解除したいときにはこのページで行なってください。
http://www.mag2.com/m/0000012198.htm
・解除は自分で行なってください。
・バックナンバーはこれらのページにあります。
http://backno.mag2.com/reader/Back?id=0000012198
http://www.kab-studio.biz/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*
    KAB-studio.h
      Weekly Mail Magazine.
      Written by Kaburaya Seiden.
      http://www.kab-studio.biz/Info/MailMagazine/

    (C)KAB-studio 1999 - 2006 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz
*/
////////////////////////////////////////////////////////////////////

