////////////////////////////////////////////////////////////////////
◎ ≪---= 業務用小型ダーツマシン「ダーツイーグル」

これなら置ける！！
お店の盛り上げに、空きスペースの有効活用に、客単価アップのツールに、一役買います。
ダーツマシンをあなたのお店にも置いてみませんか？
もちろん、個人でのご利用にも最高です。
市販エレクトリックダーツとは動作、アクション、作りが違います。

できるだけ省スペースで、安価に置けるダーツマシンが↓ここ↓にあります。
『大阪ギフトショー新製品コンテスト大賞受賞！』
http://af1.mag2.com/m/af/0000008658/001/s00000001980002/005
////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


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

    送信日： 2006/10/09(Mon) No.377
    配信数： 1707
    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

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

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

2006/10/09 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
17.02 派生クラスでのメンバの追加
17.03 protected メンバ
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


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

2006/10/01 (Sun)
　10時起き。ラーメン食べて寝たら4時。夕方はダビング。10月とかこれか
らの予定。

2006/10/02 (Mon)
　9時起き。ラクガキ描いたりとだらだらと。アニメが多くて死ねる。夜に
プール。食べないと体力が。散歩でアシイタイ足が痛い……。

2006/10/03 (Tue)
　目覚まし止めまくり。午後はお絵描きとか。目覚まし追加。明日からの
おしごとについて。間が悪すぎる。

2006/10/04 (Wed)
　金曜までおしごと。5時半に目が覚める。10時に新宿へ。おしごとの内容
とか。3時に終了。帰ってからアニメ観たり。おしごとですげー腹減る。そ
して目覚まし時計。

2006/10/05 (Thu)
　おしごと2日目。疲れた。帰ってからは昨日の夜のアニメを。そして音楽
目覚まし時計。

2006/10/06 (Fri)
　おしごと最終日。帰りにコミックス買ってテキスト渡したりしてから
帰宅。とりあえずおしごと終わった〜。

2006/10/07 (Sat)
　8時半起き。午前中は洗濯。午後は西武ライオンズ対福岡ソフトバンク
ホークスのプレーオフ第１戦。夕方はアニメ感想書き。夜はフットサル。
親指が……。


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

2006/10/01 (Sun)
http://d.hatena.ne.jp/kab_studio/20061001
起きた。
[KAB-studio]ぷらとわ追加。
[KAB-studio][ほとはー]ほとはー外伝３ P.73
[食]とろとろ肉そば てんか てんかのつけ麺
荷物が盗まれたかも、完結。
[link]臓器売買：会社役員と内縁の社長逮捕　知人の腎臓移植
[アニメ]「牙」 第27話「戦士たち」
[アニメ]おねがいマイメロディ〜くるくるシャッフル！〜 
　第27話「ハッキリしてくれたらイイナ！」
[アニメ]ひぐらしのなく頃に 第26話「罪滅し編　其の伍　リテイク」(終)

2006/10/02 (Mon)
http://d.hatena.ne.jp/kab_studio/20061002
起きた。
[C71]冬コミ受付確認ハガキ到着
[link]セイコーエプソン、USB対応の業務用インパクトプリンタ2製品
[水泳ダイエット]10月1回目
[アニメ]金色のコルダ 第1話「ありえないプレリュード」(新)
[アニメ]ライオン丸G 
　第1話「2011 NEO歌舞伎町ライオン丸TRANSFORMED状態！」(新)
[アニメ]ギャラクシーエンジェる〜ん 
　第1話「出撃！天使のスクランブる〜ん」(新)
[アニメ]うたわれるもの 第26話「うたわれるもの」(終)

2006/10/03 (Tue)
http://d.hatena.ne.jp/kab_studio/20061003
起きた
[link]超リアルなお仕事体験パーク「キッザニア」を見てきました
[絵][版権物イラスト]ふしぎ星の☆ふたご姫 Gyu! ファイン
[装備]目覚まし時計追加
[アニメ]BLACK BLOOD BROTHERS 第1話「黒き血の兄弟」(新)
[アニメ]N・H・Kにようこそ！ 第13話「天国にようこそ！」
[アニメ]ときめきメモリアル Only Love 第1話「ときめきの出会い」(新)
[アニメ]Pumpkin Scissors 第1話「不可視の9番」(新)
[アニメ]D.Gray-man 第1話「アクマを狩る少年」(新)

2006/10/04 (Wed)
http://d.hatena.ne.jp/kab_studio/20061004
起きた
帰ってきた。
[アニメ]DEATH NOTE 第1話「新生」(新)
[アニメ]ゴーストハント 第1話「悪霊がいっぱい！？」(新)
[アニメ]ヤマトナデシコ七変化 第1話「暗闇に射し込む光」(新)
[アニメ]ブラックラグーン 第13話「The Vampire Twins Comen」(新)
[アニメ]RED GARDEN 第1話「さよなら少女たち」(新)
[アニメ]ネギま！？ 第1話「えーっいきなり31人！」(新)

2006/10/05 (Thu)
http://d.hatena.ne.jp/kab_studio/20061005
起きたよ……
帰ってきた。
[アニメ]イノセント・ヴィーナス 第9話「救済」
[アニメ]武装錬金 第1話「新しい命」(新)
[アニメ]スーパーロボット大戦オリジナルジェネレーションズ
　〜ディバイン・ウォーズ〜 第1話「鋼鉄の亡霊」(新)
[アニメ]蒼天の拳 第1話「賞金首・閻王」(新)

2006/10/06 (Fri)
http://d.hatena.ne.jp/kab_studio/20061006
起き。
帰宅
[買]コミックスとか購入
[アニメ]護くんに女神の祝福を！ 第1話「恋するビアトリス」(新)
[アニメ]ザ・サード 〜蒼い瞳の少女〜 第21話「届かぬ思い」
[アニメ]009-1 第1話「潜入者たち」(新)
[アニメ]マージナルプリンス-月桂樹の王子達- 
　第1話「翠緑のエスクエラ」(新)
[アニメ]あさっての方向。 第1話「願い石」(新)
[アニメ]はぴねす！ 第1話「バレンタイン」(新)
[アニメ]すもももももも〜地上最強のヨメ〜 第1話「地上最強の許嫁」(新)

2006/10/07 (Sat)
http://d.hatena.ne.jp/kab_studio/20061007
起きた（爆）。
西武まず一勝！
帰ってきた。
[アニメ]コードギアス 反逆のルルーシュ 第1話「魔神が生まれた日」(新)
[アニメ]銀河鉄道物語〜永遠への分岐点〜 第1話「新たなる旅立ち」(新)
[アニメ]彩雲国物語 第23話「旅は道連れ世は情け」
[アニメ]おとぎ銃士 赤ずきん 第15話「トゥルーデの迷宮」
[アニメ]ぷるるんっ！しずくちゃん 第1話「しずくの森へようこそ」(新)
[アニメ]ふしぎ星の☆ふたご姫 Gyu! 第28話「悪の優等生＠ビビン登場」
[アニメ]家庭教師ヒットマンREBORN! 
　第1話「えぇ！？俺がマフィアの10代目！？」(新)
[アニメ]天保異聞 妖奇士 第1話「妖夷、来たる」(新)


////////////////////////////////////////////////////////////////////
// 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/s00000001980002/005
////////////////////////////////////////////////////////////////////
// #pragma twice
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

　Version 17.22
delete の方法

「前回はポリモーフィズムを new と delete で行う方法を説明しました」
『でも delete のタイミングとか方法の管理が難しー！　あんな面倒なこと
しなきゃいけないの？　ってゆーかなんで new しなきゃいけないんだっけ』
「一番の問題は、 Version 17.12 ( No.367 ) 等で説明したとおり、
ポリモーフィズムはポインタでないと使えないから」
『あーそっか、アップキャストしても型が変わらないようにするにはアドレス
渡すしかないんだもんね』
「そういうこと。つまり、ポリモーフィズムを使うためには」

・変数のアドレスを使用する

「ことが必要です」
『でも』

・関数から抜けるとローカル変数がなくなる
　→戻り値でローカル変数のアドレスを返せない
　　→ new で変数を作るしかない

『ってことになって、だから面倒なことになるわけね』
「そういうこと。でも、そうなるといくつか問題点が発生します」

・ポインタをいつ解放するか
　・使用中に解放してはいけない（存在しない変数を使ってしまう）
　・解放し忘れてはいけない（メモリリークになる）
　・解放前にアドレスを上書きしてはいけない（同上）

・delete で解放していいのか
　・確保方法がわからないと解放できない
　　（ new で確保したのか、それとも普通の変数なのか
　　　アドレスからはわからない）

「こういった問題をある程度回避する方法があります」
『なにぃ！　そんな方法があるんなら早く教えてよ』
「ただ、ちょっと上級者向けなのと、結構面倒だからその辺は憶えておい
て」
『う、つまり理解せず使うなってことね』
「そゆこと。まず比較的簡単な」

・delete で解放していいのか

「から解決します。これには方法がふたつあります」

・delete をオーバーロードする
・解放専用のメンバ関数を作る

「まずは delete のオーバーロードから」

・delete をオーバーロードする

「まず、 Version 11.13 ( No.213 ) を読み返してください。こんな箇所が
あったと思います」

void* AFX_CDECL operator new( /* 略 */ )
{
    return ::operator new( /* 略 */ );
}

『うぉ、 operator って、演算子のオーバーロードのやつじゃん！』
「そう、 Version 16.15 ( No.342 ) とかで説明したね。実は、 new と 
delete は演算子のひとつ、ということになってるんです」
『へー、全然演算子に見えないけど』
「ちなみに sizeof も演算子。このみっつは記号じゃない演算子ってこと」
『なんか不思議……』
「で、この new や delete も演算子だから、オーバーロードできるんです。
というわけで、 delete 演算子をメンバ関数でオーバーロードしてみます」

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

// delete 演算子で解放できないクラス。
class CUnDeletable
{
public:
    // delete されたときに呼び出されるメンバ関数です。
    // delete 演算子をオーバーロードしています。
    void operator delete( void *p_pvThis )
    {
        OutputDebugString( "delete されました。\n" );
    }
};

int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    // CUnDeletable クラスの変数を作ります。
    CUnDeletable cUnDeletable;
    // この変数のアドレスをポインタに格納します。
    CUnDeletable *pcUnDeletable = &cUnDeletable;
    // それを delete で解放します。
    delete pcUnDeletable;
    // delete されました。

    return 0;
}

『ぎゃーっ！！　何これ気持ち悪ッ！！』
「普通の変数を delete で解放してるように見えるからね……まず、 
delete 演算子をメンバ関数でオーバーロードする場合、こういう引数と
戻り値になります」

    void operator delete( void *p_pvThis )
                                  ↑delete に渡されたアドレス。

「 p_pvThis 引数には delete に渡したアドレス、つまり」

    delete pcUnDeletable; ←このアドレスと同じ。

「この pcUnDeletable に入っているアドレスが渡されます」
『このアドレスでなにするの？』
「普通は、ここでメモリの解放を行います」
『そっか、それが delete だもんね』
「本来、 new と delete のオーバーロードは、デフォルトの方法じゃない
特殊な方法でメモリを確保したい場合に使います」
『 Version 11.13 ( No.213 ) のデバッグモードの時みたいにね』
「そゆこと。だから、本来なら new もオーバーロードして対にして確保と
解放を行うわけです。でも、今回は delete で何もしない、っていう形に
しました」
『だから、普通の変数を delete しても大丈夫なわけね』
「逆に言うと」

    // CUnDeletable クラスの変数を new で作成します。
    CUnDeletable *pcUnDeletable = new CUnDeletable;
    // それを delete で解放します。
    delete pcUnDeletable;
    // delete されました。
    ↑実際には解放されてないのでメモリリークします。

「とかするとメモリリークします」
『……えっと、これって何に使うんだっけ？』
「前々回の static 変数を使った場合の話」
『あー！　そか、 static 変数を使った時は delete しちゃいけない、それ
を防ぐのがこれってわけね』
「そういうこと。これなら static 変数や普通の変数をうっかり delete し
ても大丈夫ってことだね」
『それはそうだけど……』
「あともうひとつ、似た方法に」

・解放専用のメンバ関数を作る

「というものがあります。使用例はこんな感じ」

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

// Delete() メンバ関数で解放するクラス。
class CDeletable
{
public:
    // 自分を解放するメンバ関数です。
    virtual void Delete()
    {
        OutputDebugString( "delete します。\n" );
        // 自分自身を delete します。
        delete this;
    }
};

int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    // CDeletable クラスの変数を new で作成します。
    CDeletable *pcDeletable = new CDeletable;
    // それを Delete() メンバ関数で解放します。
    pcDeletable->Delete();
    // delete します。

    return 0;
}

「この CDeletable クラスは、 delete じゃなくメンバ関数で解放するよう
になっています」
『ぎゃーっ！！　メンバ関数の中で delete 使ってる、しかも this に！』

    virtual void Delete()
    {
        OutputDebugString( "delete します。\n" );
        // 自分自身を delete します。
        delete this;    ← pcDeletable の中のアドレスと同じ。
    }

「実はこんなふうに、メンバ関数の中で delete を呼び出すことができるん
です」
『これも気持ち悪い……』
「この方法のメリットは、ポリモーフィズムできること。実は、さっきの 
delete 演算子は static メンバ関数という扱いなのでポリモーフィズム
できないんです」
『げ、そうなんだ』
「でもこっちの方法なら普通のメンバ関数だから」
『 virtual 付けて仮想関数にできるからオーバーライドできる』
「そうすることで、クラスによって解放方法を変えたりできるんです。クラス
によって解放方法を変えたい場合にはこっちの方が便利かな」
『でも間違えて delete しちゃいそう……』

/*
    Preview Next Story!
*/
『な、なんか今回は異次元の世界でしたよ？』
「こういうトリッキーなプログラム、いっぱいあるよ」
『やっぱりトリッキーなんだよねやっぱり』
「でも C++ じゃ普通かも」
『なんですとー！？』
「というわけで次回」
＜ Version 17.23 スマートポインタ ＞
『につづく！』
「スマートポインタもとっても面白いよ？」
『なんだかその笑顔がハンザイシャに見えますよ？』


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

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

