////////////////////////////////////////////////////////////////////
デジカメ写真が超特大サイズに変身！
他にはない、あなたの写真が各種アイテムに超拡大プリントできる！
あなたが撮影したデジカメ写真や昔の写真が、カレンダーや
オリジナルタペストリー等オリジナルアイテムになります。
デジカメ写真を拡大プリントして超特大ポスターにも出来る！
アドマックスのプリントサービス。
http://af1.mag2.com/m/af/0000008658/001/s00000005132001/010
////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


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

    送信日： 2006/12/04(Mon) No.385
    配信数： 1678
    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

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

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

2006/12/04 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
17.18 「インターフェイス」という考え方
17.19 インターフェイスの使い方
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

2006/12/01 (Fri)
　#pragma twice ホームページ版をリニューアル！
　各ページのレイアウトを変更しました。
　フォントを等幅フォントにして、図が綺麗に見えるようにしました。
　検索機能を追加しました。
（表紙は変更していません）
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


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

2006/11/26 (Sun)
　１１時半起き。お昼にいつもの更新。胃が……。でも今週は作業効率良
かった。夜中心にしたから？　でも夜型には危険が……。

2006/11/27 (Mon)
　昨日の夜にほとはー外伝３描き。１０時半起き。午後にほとはー外伝３の
続き。Machicianに検索機能追加。今日は調子いい。

2006/11/28 (Tue)
　昨日の夜にほとはー外伝３描き。今日もほとはー外伝３描きで来週月曜分
完成。はてなセリフテンプレ描き。久々プールでかなり疲れた。

2006/11/29 (Wed)
　１１時起き。久々霜取り。ほとはー外伝３の新表紙描き。夜はプール。
そして社会復帰。

2006/11/30 (Thu)
　昨日の夜はぷらとわ１話。１１時に起きて、ほとはー外伝３新表紙はうま
くいかず。ひぐらし落ちる。W-ZERO3[es]アップデートやゼルダとか。Wii待
ちきれない。プール今月は１２回。

2006/12/01 (Fri)
　ぷらとわリニューアル。いろんなめどがついた。プールでポイントカード
がスタート。明日はWiiの発売日。もう売り切れてるところが……。

2006/12/02 (Sat)
　ドンキの0時販売を眺める。１０時に起きてソフマップへ。Wii購入。ゼルダ
とウィスポやりまくる。ゼルダ難しい。


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

2006/11/26 (Sun)
http://d.hatena.ne.jp/kab_studio/20061126
起きた……。
[KAB-studio]ぷらとわ追加。
[KAB-studio][ほとはー]ほとはー外伝３ P.81
[アニメ]「牙」 第35話「生贄となる者」
[アニメ]おねがいマイメロディ〜くるくるシャッフル！〜 
　第35話「手をつなげたらイイナ！」
[アニメ]乙女はお姉さまに恋してる 第8話「縮まらない記録（タイム）」
[アニメ]くじびきアンバランス 第8話「むかしのことをわすれている。7点」
[アニメ]Gift 〜eternal rainbow〜 第8話「思い出の時間」

2006/11/27 (Mon)
http://d.hatena.ne.jp/kab_studio/20061127
起きた……。
プール休む。
[KAB-studio][Machician]検索機能追加。
[link]WiiバーチャルコンソールにR-TYPEとネクタリスが！
[アニメ]金色のコルダ 第9話「安らぎのコンチェルト」
[アニメ]夜明け前より瑠璃色な Crescent Love 
　第8話「お姫様と瑠璃色の空の下で…」
[アニメ]ギャラクシーエンジェる〜ん 
　第9話「豪華！セレブのトラベ る〜ん」

2006/11/28 (Tue)
http://d.hatena.ne.jp/kab_studio/20061128
起きた。
[link][絵][版権物イラスト]はてなセリフ
[水泳ダイエット]11月10回目
[きらら]まんがタイムきららCarat 2007年1月号
[アニメ]BLACK BLOOD BROTHERS 第9話「第十一地区」
[アニメ]N・H・Kにようこそ！ 第21話「リセットにようこそ！」
[アニメ]Pumpkin Scissors 第9話「朝霧の女」

2006/11/29 (Wed)
http://d.hatena.ne.jp/kab_studio/20061129
起きた。
霜取り開始！
霜取り完了！
[水泳ダイエット]11月11回目
[アニメ]DEATH NOTE 第9話「接触」
[アニメ]ブラックラグーン 第21話「Two Father's Little Soldier Girls」
[アニメ]ネギま！？ 第9話「キャンプだそうです なんで？」

2006/11/30 (Thu)
http://d.hatena.ne.jp/kab_studio/20061130
起きた。
[ひぐらしのなく頃に]解をプレイ開始……したが……。
[装備][link]W-ZERO3[es]バージョンアップ。
[水泳ダイエット]11月12回目
[アニメ]奏光のストレイン 第6話「安らぎに背を向けて」
[アニメ]武装錬金 第9話「早坂姉弟」

2006/12/01 (Fri)
http://d.hatena.ne.jp/kab_studio/20061201
起きた……。
[Wii祭り]Wii祭り開催中
[Wii祭り][link]ほぼ日刊イトイ新聞 - Wii 発売前夜祭！
[Wii祭り][link]スポーツナビ | スポーツナビ×Wii スポーツ
[Wii祭り][link]YouTube - おどるメイドインワリオ　9ボルト＆18ボルト
[Wii祭り][link]か、完売……。
[Wii祭り]ドンキでは0時発売。
[KAB-studio]#pragma twiceをリニューアル！
[水泳ダイエット]12月1回目
[link]キッド：負債額約5億3000万円、自己破産申請へ (まんたんウェブ)
[アニメ]あさっての方向。 第9話「みちしるべ」
[アニメ]すもももももも〜地上最強のヨメ〜 第9話「悲恋のヒーロー女」

2006/12/02 (Sat)
http://d.hatena.ne.jp/kab_studio/20061202
起きた！
[Wii祭り][買][装備]Wii購入！！！
[Wii祭り][ゼルダトワプリ]ファーストインプレッション
[ゼルダトワプリ]むずかしすぎ！
[Wii祭り]Wii Sportsのボクシングが激しく面白い！
[Wii祭り]センサーバーとかバーチャルコンソールとか。
[アニメ]彩雲国物語 ゲストトークスペシャル
[アニメ]おとぎ銃士 赤ずきん 第23話「ガラスのくつ」
[アニメ]ふしぎ星の☆ふたご姫 Gyu! 
　第36話「花嫁は誰？☆超セレブなプリンセス・パーティ」
[アニメ]コードギアス 反逆のルルーシュ 第8.5話「仮面の軌跡」


////////////////////////////////////////////////////////////////////
// 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

■追加・更新単語

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


////////////////////////////////////////////////////////////////////
デジカメ写真が超特大サイズに変身！
他にはない、あなたの写真が各種アイテムに超拡大プリントできる！
あなたが撮影したデジカメ写真や昔の写真が、カレンダーや
オリジナルタペストリー等オリジナルアイテムになります。
デジカメ写真を拡大プリントして超特大ポスターにも出来る！
アドマックスのプリントサービス。
http://af1.mag2.com/m/af/0000008658/001/s00000005132001/010
////////////////////////////////////////////////////////////////////
// #pragma twice
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

　Version 17.30
デストラクタを仮想関数にする

「前回は継承とコンストラクタの関係について説明しました」
『ただでさえ複雑なコンストラクタが、よけい複雑に……』
「で、今回はデストラクタについて」
『コンストラクタとデストラクタは対だもんね』
「でもコンストラクタほど難しくはないから。ただ押さえておかなきゃいけ
ないのが、継承されるクラスのデストラクタは必ず仮想関数にしなければい
けない、という点」
『え、そなの？』
「これまでは継承もデストラクタもあまり使わなかったから説明してこな
かったけど、継承をする場合、基本クラスのデストラクタは必ず仮想関数に
する必要があるんです」
『でもさ、仮想関数ってオーバーライドした方が呼び出されるようにする
仕組みだよね。でもさ、デストラクタって変数がなくなるときに自動的に
呼び出されるんだから、そんなこと気にしなくていいんじゃない？』
「そこが盲点なんだよね。まぁ、その辺の確認も含めて、デストラクタと
継承について見てみようか。まずは簡単な例から」

// 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;

    return 0;
    // 変数がなくなるので、デストラクタが呼び出されます。
    // CDerived::~CDerived()
    // CBase::~CBase()
}

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

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

「で、 WinMain() 関数から抜けるときにこの cDerived 変数がなくなりま
す。デストラクタは変数がなくなるときに自動的に呼び出されるメンバ関数
なので、このときデストラクタが呼び出されます」

    return 0;
    // 変数がなくなるので、デストラクタが呼び出されます。
    // CDerived::~CDerived()
    // CBase::~CBase()

『お、派生クラスと基本クラス両方とも呼ばれてる』
「デストラクタはコンストラクタと逆で、派生クラスが先、基本クラスが後
です」
『あ、それってコンストラクタのときと同じ理由だよね。基本クラスが先に
なくなっちゃったら派生クラスのデストラクタで基本クラス使えないもん』
「そういうこと！　基本クラスは派生クラスから使われる可能性がある、だ
から派生クラスより先に基本クラスがなくならないようになってるわけです」
『ちゃんとしてるのねー』
「さて、この例ではデストラクタを仮想関数にしていません。すると、実は
ポリモーフィズムを使った時に問題が発生するんです。たとえば以下のよう
に使用した場合」

int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    // CDerived クラスの変数を new で作ります。
    CBase *pcBase = new CDerived();
    // それを delete で解放します。
    delete pcBase;
    // 変数がなくなるので、デストラクタが呼び出されます。
    // CBase::~CBase()

    return 0;
}

「まず、派生クラスの CDerived クラスを new で作り、そのアドレスを
基本クラスの CBase クラスのポインタで受け取ります」

    // CDerived クラスの変数を new で作ります。
    CBase *pcBase = new CDerived();

『 Version 17.08 ( No.363 ) のアップキャスト使ってるんだね』
「これを、 delete で解放すると、派生クラスの CDerived クラスの
デストラクタが呼び出されないんです」

    // それを delete で解放します。
    delete pcBase;
    // 変数がなくなるので、デストラクタが呼び出されます。
    // CBase::~CBase()

『げ、ホントだ！！　これってさっき言ってた、仮想関数にしてないからっ
てこと？』
「そういうこと。 Version 17.13 ( No.368 ) で説明したように、仮想関数
じゃないメンバ関数はポインタの型のメンバ関数が呼ばれるんです。これは
デストラクタも同じってこと」
『この例だと pcBase 変数の型、つまり CBase クラスのデストラクタしか
呼ばれないから、 CDerived クラスのデストラクタが呼び出されない、って
ことなのね』
「そこで、基本クラスのデストラクタを仮想関数にします」

// 基本クラス。
class CBase
{
public:
    // デストラクタ（仮想関数です）。
    virtual ~CBase()
    {
        OutputDebugString( "CBase::~CBase()\n" );
    }
};

「こうして virtual をつけることで、基本クラスも派生クラスも、
デストラクタが仮想関数になります」
『そういえば基本クラスのメンバ関数を仮想関数にすれば、オーバーライド
したメンバ関数も仮想関数になるんだったね』
「こうすることで、ちゃんと派生クラスのデストラクタも呼び出されるよう
になります」

    delete pcBase;
    // 変数がなくなるので、デストラクタが呼び出されます。
    // CDerived::~CDerived()
    // CBase::~CBase()

『おお！　ちゃんと呼び出されてる！！』
「このように、基本クラスのデストラクタを仮想関数にすることで、
派生クラスのデストラクタも呼び出されるようになるわけです」
『なるほどねー』
「で、はっきり言うと、実は〈継承するかもしれないクラスは必ず仮想関数
のデストラクタを持つ〉ようにしてください」
『継承するかもしれない……ってほとんどのクラスがそうじゃないの？』
「うん、だから全部のクラスでそうしてもいいかも」
『でもさ、デストラクタって後始末するメンバ関数じゃん。使うことあんま
りないんじゃないの？』
「実はそうじゃないんです。デストラクタは、作らなくても自動的に作られ
るんです。で、デストラクタは〈メンバ変数を削除する〉っていう大事な
機能を持ってるんです」
『メンバ変数を削除する……？』
「たとえば」

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

// ただのクラス。
class CTest
{
public:
    // デストラクタ。
    ~CTest()
    {
        OutputDebugString( "CTest::~CTest()\n" );
    }
};

// 基本クラス。
class CBase
{
public:
    // デストラクタ（仮想関数ではありません）。
    ~CBase(){}
};

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

int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    // CDerived クラスの変数を new で作ります。
    CBase *pcBase = new CDerived();
    // それを delete で解放します。
    delete pcBase;
    // 変数がなくなるので、デストラクタが呼び出されます。

    return 0;
}

「 CDerived クラスは CTest クラスのメンバ変数を持っています。この 
CTest クラスはデストラクタを持っていて、削除されるときに出力をします」
『うん、だから CDerived クラスの変数が delete で解放されるときに一緒
になくなる……んだよね？』
「この例ではなくなりません」
『えええっ！？　……それって、さっき言ってた、基本クラスのデストラクタ
が仮想関数じゃないから、派生クラスのデストラクタが呼ばれない、だから
ってこと？？？』
「そういうこと。だから、 CBase クラスのデストラクタを……」

    virtual ~CBase(){}

「って仮想関数にすれば」

    // それを delete で解放します。
    delete pcBase;
    // 変数がなくなるので、デストラクタが呼び出されます。
    // CTest::~CTest()

『あ、ちゃんと出力された』
「このように、派生クラスでデストラクタを作らなくても、基本クラスには
必ずデストラクタを持たせて、仮想関数にするようにしてください」

/*
    Preview Next Story!
*/
『また見えないところで何かしているのが……』
「こういうのをひとつずつ憶えていくのが近道かも」
『はい先生！　とても憶えきれません！』
「そろそろネタも尽きてくるから大丈夫……かな」
『ってことは次は……』
「というわけで次回」
＜ Version 17.31 動的型チェック ＞
『につづく！』
「うん、ちゃんと見える話……かな？」
『どっちなのよ！！』


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

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
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
*/
////////////////////////////////////////////////////////////////////

