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

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

できるだけ省スペースで、安価に置けるダーツマシンが↓ここ↓にあります。
『大阪ギフトショー新製品コンテスト大賞受賞！』
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/09/18(Mon) No.374
    配信数： 1713
    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

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

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

2006/09/18 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
16.24 デフォルト値vsオーバーロード
16.25 static メンバ変数
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


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

2006/09/10 (Sun)
　体力ギリギリ。夜までほとはー外伝３描き。プールも行かず体力回復。
あとでぷらとわ書く。明日からはストック作り中心。次のおしごとは１月。

2006/09/11 (Mon)
　昨日まともに寝てない。午前中はビデオのダビング、午後はお絵描き。
主線のサイズをもっと考えた方が良さそう。プール行くと疲れる。

2006/09/12 (Tue)
　しっかり寝ればちゃんと起きられる？　急遽おしごとの話。こういうのが
重要。お昼過ぎまでお絵描き。昨日のの続き。 lain DVDが届いたので全話
一気に観る。

2006/09/13 (Wed)
　クリップ型iPod shuffle衝動買い。辛いラーメンが胃に来た。夕方に回復
してほとはー外伝３の主線描き。夜はプール。来週は「遅い夏休み」にする
予定が……。

2006/09/14 (Thu)
　昨日の夜全然眠れなくて6時寝10時半起き。おしごとぽしゃる。変なネタ
記事書いたり、Wiiの発売日発表に浮かれたり、ヒドい絵を描いたり。
完全休養日。

2006/09/15 (Fri)
　電気設備安全点検。メインはほとはー外伝３描き。てくてく歩いて新横浜
へ。遠回りスノーヴァ新横浜。新横浜には何もなかった……。

2006/09/16 (Sat)
　午前中は洗濯。午後はアニメ観賞とダビングと、久々カブカテキョ。夕方
にぷらとわ書き。最後まで書き上げた方がいいかも。夜に散歩。
鶴見スポーツセンター。


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

2006/09/10 (Sun)
http://d.hatena.ne.jp/kab_studio/20060910
起きた……
[KAB-studio]ぷらとわ追加。
[KAB-studio][ほとはー]ほとはー外伝３ P.70
プールは休む。
[アニメ]「牙」 第24話「幸せの黄色いシャード」
[アニメ]おねがいマイメロディ〜くるくるシャッフル！〜 
　第24話「おでんが売れたらイイナ！」
[アニメ]ひぐらしのなく頃に 第23話「罪滅し編　其の弐　還る処」

2006/09/11 (Mon)
http://d.hatena.ne.jp/kab_studio/20060911
お、おきた……
[食][パスタソース]クラシコ パスタソース　スパイシーレッドペッパー
[食][パスタソース]ラ・ファヴォリータ サルサ ディ ルッコラ
[絵]メイド喫茶(続)
[水泳ダイエット]9月5回目
[アニメ]ARIA The NATURAL 第24話「その　明日のウンディーネに…」
[アニメ]ゼロの使い魔 第11話「ルイズの結婚」
[アニメ]うたわれるもの 第22話「忌まわしき契約」
[アニメ]うたわれるもの 第23話「心の在り処」

2006/09/12 (Tue)
http://d.hatena.ne.jp/kab_studio/20060912
起き……。
[水泳ダイエット]9月6回目
[link][装備]フィラーノート
[絵]メイド喫茶キュイエールへようこそ！
[買][アニメ]serial experiments lain TV-BOX
[アニメ]N・H・Kにようこそ！ 第10話「ダークサイドにようこそ！」

2006/09/13 (Wed)
http://d.hatena.ne.jp/kab_studio/20060913
起きた……
[買][装備]クリップ型新iPod shuffle
[絵]クリップ型iPod shuffleオプション
[水泳ダイエット]9月7回目
[アニメ]桜蘭高校ホスト部 第24話「そして鏡夜は出会った」

2006/09/14 (Thu)
http://d.hatena.ne.jp/kab_studio/20060914
起……
[link]宇宙禅拳法　- uchuuzenkenpo
[買]ファミ通キャラクターズDVD Vol.1
[link]任天堂Wii、12月2日、25000円
[link][絵]4th MEDIA（フォースメディア）対応の大型液晶テレビ欲しい！
[link]アスキーアートを簡単にきれいに表示するaa記法
[アニメ]ゼーガペイン 第24話「光の一滴（ひとしずく）」
[アニメ]イノセント・ヴィーナス 第6話「暴走」

2006/09/15 (Fri)
http://d.hatena.ne.jp/kab_studio/20060915
起き。
[装備]スピーカーSUR.Rが突然鳴らなくなった。
[KAB-studio]電気設備安全点検
新横浜
[買]コミックス購入
[KAB-studio]KAB-studio.h草分けバナー
[アニメ]ザ・サード 〜蒼い瞳の少女〜 第18話「発動」
[アニメ]無敵看板娘 第21話「背中で語るあいつ」
[アニメ]無敵看板娘 第22話「喜色満面死闘」

2006/09/16 (Sat)
http://d.hatena.ne.jp/kab_studio/20060916
起きたのです。
[アニメ]シルクロード少年 ユート 第1話「楼蘭へ！初めての時間旅行」(新)
[アニメ]おとぎ銃士 赤ずきん 第12話「地下室のひみつ」
[アニメ]彩雲国物語 第20話「枯れ木に花咲く」
[アニメ]ふしぎ星の☆ふたご姫 Gyu! 第25話「目指せ優勝！☆ダンスコンテスト」
[アニメ]ウィッチブレイド 第23話「乱」
[買][装備]目覚まし時計


////////////////////////////////////////////////////////////////////
// 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.19
インターフェイスの使い方

「前回は」
『よく分からなかった！』
「というわけでちゃんとまとめてみます。まず、ポリモーフィズムの一番良
く使われる場面は？」
『関数ポインタの代わり！』
「そう、自分で作った関数を呼び出してもらうためにアドレスを渡すのが
関数ポインタ、それをもう少し分かりやすくしたのが」
『ポリモーフィズムの機能ってわけね』
「この部分だけを抜き出してみようか。まずは関数ポインタの場合」

■関数ポインタの場合
◇準備
                   （関数Aのアドレスを渡す）
┌──使われる側────┐         ┌────使う側───┐ 
│ ・関数Aを呼び出す関数 ←←←←←←・関数A             │
└───────────┘         └──────────┘

◇使う時
                     （関数Aを呼び出す）
┌──使われる側────┐         ┌────使う側───┐ 
│ ・関数Aを呼び出す関数 →→→→→→・関数A             │
└───────────┘         └──────────┘

『つまり、使う側で関数を用意してアドレスを渡しておくと、それを呼び出
してくれるわけね』
「そういうこと。これをポリモーフィズムで実現すると、こうなります」

■ポリモーフィズムの場合
◇準備
               （派生クラスの変数のアドレスを渡す）
┌──使われる側────┐         ┌────使う側──────┐ 
│ ・クラスAの仮想関数を ←←←←←←・クラスAの派生クラス。   │
│   を呼び出す関数     │         │  仮想関数をオーバーライド│
└───────────┘         └─────────────┘

◇使う時
               （クラスAの仮想関数を呼び出す）
┌──使われる側────┐         ┌────使う側──────┐ 
│ ・クラスAの仮想関数を →→→→→→・クラスAの派生クラス。   │
│   を呼び出す関数     │         │  仮想関数をオーバーライド│
└───────────┘         └─────────────┘

『あれ、こう比べてみるとだいぶ構造が違うような……』
「ポリモーフィズムの場合、まずクラスAというものを〈使われる側〉で用
意しておく必要があります。使う側は、その派生クラスを作って、仮想関数
をオーバーライドします」

     ┌───── クラスA──────┐ 
     │・仮想関数                    │
     └───────────────┘
                     △
                     │
                     │
     ┌───────┴───────┐ 
     │・仮想関数(オーバーライド)    │
     └── クラスAの派生クラス───┘

「このオーバーライドした仮想関数が、関数ポインタの時の関数Aに当たり
ます」
『つまりこれが〈使われる側〉から呼び出されるわけね』
「もうひとつ重要な点が、使う側は〈クラスAの派生クラス〉の変数を作っ
て、そのアドレスを渡すっていう点」
『関数ポインタの時は関数のアドレス、ポリモーフィズムの時はクラスの
変数』
「実はこれが重要。関数の時には関数を渡せるだけ、つまり変数は渡せない
んです」
『そっか、関数はグローバル変数使わなきゃいけないけど、クラスの変数な
らメンバ変数で渡せる！』
「そういうこと。つまり、関数ポインタの機能をバージョンアップしたもの
がポリモーフィズム、っていうことが言えるかな」
『便利になったわけねー。複雑になったけど……』
「確かに……。さて、話を戻してインターフェイスについて」
『あーそういえば』
「上の例で言うと、前回の DoBubbleSortUseComapre() 関数が〈使われる側〉
の〈クラスAの仮想関数をを呼び出す関数〉に当たります」

// ソートを行う関数です。
void DoBubbleSortUseComapre
    ( int *p_piAry, int p_iSize, CComparetor *p_pcComparetor )
// CComparetor クラスの仮想関数 CompareTo() メンバ関数を呼び出します

『この第3引数に CComparetor クラスの派生クラス、つまり 
CIntComparetor クラスの、変数のアドレスを渡すと、ポリモーフィズムが
効いて、オーバーライドしてる CompareTo() メンバ関数が呼び出される、
っていう仕組みね』
「そういうこと。で、ここでもう一度さっきの図を振り返ってみます」

◇準備
               （派生クラスの変数のアドレスを渡す）
┌──使われる側────┐         ┌────使う側──────┐ 
│ ・クラスAの仮想関数を ←←←←←←・クラスAの派生クラス。   │
│   を呼び出す関数     │         │  仮想関数をオーバーライド│
└───────────┘         └─────────────┘

『左が DoBubbleSortUseComapre() 関数、右が CIntComparetor クラスと
CompareTo() メンバ関数だね』
「この矢印の部分、右から左に CIntComparetor クラスの変数のアドレスを
渡す箇所が DoBubbleSortUseComapre() 関数の第3引数になります」

// ソートを行う関数です。
void DoBubbleSortUseComapre
    ( int *p_piAry, int p_iSize, CComparetor *p_pcComparetor )
                                                  ↑
                    ここから「派生クラスの変数のアドレス」を渡します

「つまり、この第3引数が、〈呼び出してもらうメンバ関数を持つクラス〉
の変数を渡す〈受付〉になっている、というわけ」
『受付……』
「さっきの図で言うと、この受付部分が」

                        ↓ここ
┌──使われる側────┐         ┌────使う側──────┐ 
│ ・クラスAの仮想関数を ←←←←←←・クラスAの派生クラス。   │
│   を呼び出す関数     │         │  仮想関数をオーバーライド│
└───────────┘         └─────────────┘

「になります。つまり、この部分が〈使われる側〉と〈使う側〉の接続口に
なっているわけです」
『確かにここで継ながってるね』
「で、これをいきなりですがパソコンとプリンタに置き換えます」
『パソコンとプリンタ？？？』

┌──パソコン─────┐         ┌─プリンタ──────┐ 
│ ・印刷の命令←←←←←←←←←←←・印刷する機能        │
│   を行うアプリ       │         │                      │
└───────────┘         └───────────┘

『あ、なんか似てる』
「これって似てるでしょう。プリンタはパソコンにケーブルで継なぎます。
パソコンはプリンタに対して印刷の命令を出すことで印刷します。この時、
プリンタはどんなメーカーのどんな機種でも印刷できるでしょ？」
『うん、プリンタのアイコン押せば印刷できるもんね。あ、それって
ポリモーフィズムってこと？』
「そういうこと！　つまり、あらゆるプリンタは〈プリンタの基本命令〉を
持っていて、パソコンに接続することでパソコンはその命令を送るだけで
どんなプリンタでも印刷できるわけです」
『なるほどねー、〈プリンタの基本命令〉が基本クラスの仮想関数で、それ
ぞれのプリンタの印刷機能が派生クラスでオーバーライド、ってわけね。確
かにポリモーフィズムしてる』
「で、このケーブル接続用コネクタを、専門用語で【インターフェイス】っ
て言います」

                        ↓インターフェイス
┌──パソコン─────┐         ┌─プリンタ──────┐ 
│ ・印刷の命令←←←←←←←←←←←・印刷する機能        │
│   を行うアプリ       │         │                      │
└───────────┘         └───────────┘

『おー、つまりこのインターフェイスの部分に当たるから、基本クラスの
ことをインターフェイス、って言ってるんだ』
「そういうこと。こんな感じに、使う側と使われる側の接続部分になるのが
インターフェイス、というわけです」
『なるほどねー』
「ただし！」
『ただし？』
「全部の基本クラスがインターフェイスっていうわけじゃないんです。
インターフェイスは、次のようなクラスのことを指します」

・基本クラスは持たない（持つとしてもインターフェイスに限る）
・メンバ変数を持たない
・メンバ関数は純粋仮想関数のみ

『つまり前回の CComparetor クラスはインターフェイスってわけね』

// 比較用クラスの基本クラス。
class CComparetor
{
public:
    // 比較用メンバ関数。純粋仮想関数です。
    virtual bool CompareTo( int p_iL, int p_iR ) = 0;
};

『でもなんでこういうルールがあるの？』
「なぜかっていうと、中身があっちゃいけないから」
『中身？』
「パソコンとプリンタの例で言うと、インターフェイスは〈プリンタの機能〉
を持っていちゃいけない、ってこと」
『あ、なるほど。インターフェイスは接続口でプリンタじゃないから、機能
があっちゃいけないんだ』
「この CComparetor クラスの場合も、このクラスは比較機能とかは全く
持っていません。ただ、 CompareTo() メンバ関数を呼び出すための接続口
としてのみ機能します」
『だからインターフェイス、っていうわけね』
「まぁもっとも、こういうクラスをインターフェイスって呼んでいる、って
いうだけで、普通のクラスなんかと大きな違いはないんだけどね」
『それじゃ意味ないじゃん』

/*
    Preview Next Story!
*/
『おー、図にしてなんとか分かってきた感じ』
「見て分かるっていうのは重要かもね」
『まぁテキストじゃ限界あるだろうけどねー』
「確かにね、アスキーアートまで行くと環境によっては見られないし」
『やっぱりメルマガじゃ限界あるんじゃない？』
「う」
『というわけで次回』
＜ Version 17.20 インターフェイスを戻り値にする ＞
「につづく！」
『さっきのプリンターとかも、あんな四角じゃいまいちだし〜』
「http://images.google.co.jp/images?q=%E3%83%97%E3%83%AA%E3%83%B3%E3%82%BFッ」
『うわ力業で来た！』


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

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

