////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


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

    送信日： 2003/08/11(Mon) No.219
    配信数： 2840 ( Mag2 + Pubzine )
＊    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
＊    発行元： Pubzine ( URL: http://www.pubzine.com/  ID: 590 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
/*                  次の日曜は夏コミに行こう！                    */

　８月１７日、 KAB-studio は夏コミに出ます！
　販売するのは次のふたつ。
　ひとつは、三人合体ホットハーブの外伝。おなじみほとはーの面々の水着
姿が拝めます！
　もうひとつは KAB-studio.ROM 。 C++ と Java のプログラム集です。各
種フリーウェアのソースコードも付きます！
　詳しくは「夏コミ情報」ページへ。
[ 夏コミ情報 ]
http://www.kab-studio.biz/Info/Product/C64/index.html

////////////////////////////////////////////////////////////////////
/*                ２００３年８月１１日（月）の更新                */
http://www.kab-studio.biz/

・ほとはー１話追加！。
　三人合体ホットハーブに１話追加。機能追加。

[ 三人合体ホットハーブ ]
http://www.kab-studio.biz/Comic/HotHerb/

・KAB-studio.ROM 情報更新
　夏コミで販売する KAB-studio.ROM の内容が決まったので更新しました。 
Java で納得オブジェクト指向プログラミングも付きます！！
[ KAB-studio.ROM ]
http://www.kab-studio.biz/Info/Product/C64/KAB_studio_ROM.html
[ Java で納得オブジェクト指向プログラミング ]
http://www.kab-studio.biz/Programing/JavaOOP/index.html


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

2003/08/03 (Sun)
　www.kab-studio.biz へ移転。ホームページの置換、移転しましたページ
の設置、ファイルの移動。午後はエラーチェック。 KAB-studio.ROM のデー
タ。そして新サーバー構成。アクセスの体感速度ってどう？　そして Visio
の本。そしてミノフスキー粒子。

2003/08/04 (Mon)
　午前中は朝礼＋会議。午後は客先へ。今日の一枚はベジータ様。アクセス
ログ集計。前と同じ結果。クローラーロボット嫌い。そしてアクセス速度。
そしてデータベース。

2003/08/05 (Tue)
　ファイル解析開始。 SWT 軽いなぁ。今日の一枚はラクエルねぇ。 
KAB-studio.ROM の準備。 Apache ログが増えすぎ〜。

2003/08/06 (Wed)
　３つの仕事を平行作業。 Eclipse でのビルドを色々試してみたり。今日
の一枚はオリキャラ。

2003/08/07 (Thu)
　ウイイレ７対戦。なんかかなり違う〜。お仕事はスクリプト解析とか 
Eclipse とか。そして tabstip とかカーネルとか。そしてあれなソース。

2003/08/08 (Fri)
　スクリプトファイルとかスケジュールとか。帰ってからウイイレ対戦。
ショートパスが継ながらない……。テレビ見てないなぁ。今日の一枚は樺恋
です。ラズベリー……。かぶスタ引っ越し１週間。明日の予定。

2003/08/09 (Sat)
　かぶヘッダーの準備とマスターリーグ。日韓の選手がえらい安い。ほと
はー描き。やってないこと色々。テレビはぴちぴちピッチがなにげにいい感
じ。今日の一枚はラクス嬢。なぜ鉛筆線と赤は合わないんだろう。


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

■　第八章　朱と碧　−７−

「大気？　空気ってこと？」
「そうだ。本来、何も存在しない空間に火が起こるはずがない。つまり、こ
の大気にはそれを起こす何かが存在するということじゃ。結白殿は、大気の
濃さを感じないようだが」
　赤葉はゆっくりと両腕を上げる。
「場所によってその濃度は全く異なる。特に、地上の都心部であれば、空気
は造られたものであるため、濃度は下がる」
「つまり、能力や威力が下がるということですか？」
「そうだ」
　能力の出方にむらがあるとは感じていたが、それは自分の体調や慣れのせ
いだと思っていたから、舞にとっては意外だった。
「大気の濃度、そして自らの泉に近い大気を感じ取ることができれば」
「戦いを有利に進めることができる」
「……そういうことじゃな」
　赤葉の言い淀みを、舞は感じた。
「少なくとも、この異変を乗り越えるためには、戦わねばならないと私は考
えています」
「それは認めよう。だがな」
　一区切り置いてから、全く違う言葉を言う。
「結白殿、この泉を継いで下さらんか」
「へっ！？」
　間抜けな答え方をしてしまったが、この際気にならない。
「ちょちょちょちょっと待ってください！」
「もちろん、そなたが碧き泉を継ぐことになるであろうし、この泉は朴が継
ぐべきであろう。むしろ、結白殿に頼みたいことは別にある」
　赤葉は天井を見上げた。
「泉、その全てを任せたいのだ。そなたは利発だ。真面目でもある。かと
いって堅さがあるわけでもない」
　今度は下を向き、ため息をついた。
「朴はな……特殊な存在故に、恐らく継ぐことは不可能だろう。この身もそ
う長くはない。考えておいてはくれまいか？」
「……急ぐ、必要はないと思います。少なくとも、他の泉のことが判るまで
は」
「うむ、そうじゃな」
　しかし、舞の表情は、あからさまに曇っていた。
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
『へー、 Java のメルマガも付くんだね』
「 KAB-studio.ROM の中身のこと？」
『そうそう。あれってぜんっぜん売れなかったんだよね』
「う……」
『実際の所、今度はどんくらい売れると思う？』
「さぁ……こればっかりはその日になってみないと」
『これ読んでる人がみんな買いに行けば売りきれるんじゃない？』
「売り切れはないとしても……これ読んでる方、ぜひ来てください！！」
『帰り際ちょこっと寄るだけでいいんで！』
「……寄るだけじゃ困るけど」
『げ、本音言いやがった！』
http://www.kab-studio.biz/Info/Product/C64/index.html
_______________________________________________________________[KCM]

////////////////////////////////////////////////////////////////////
/*                       #pragma twice                            */
http://www.kab-studio.biz/Programing/PragmaTwice/

　Version 11.19
オーバーロード関数を作ってみよう

「今回はオーバーロードについて見てみます」
『オーバーロードって前にやったね』
「 Version 8.11 ( No.153 ) だね。オーバーロードそのものについては
そっちで解説してるからいいとして、今回は」
『作ってみる？』
「そゆこと。まずは簡単な例を見てみます」

// オーバーロードしたメンバ関数を持つクラス。
class CHasOverload
{
public:
    // メンバ関数１。
    void Overloaded()
    {
        TRACE( "Overloaded()\n" );
    }

    // メンバ関数２。
    void Overloaded( int p_i )
    {
        TRACE( "Overloaded( %d )\n", p_i );
    }
};

『 Overloaded() ってメンバ関数がふたつあるから、これがオーバーロード
してるんだね』
「そう。戻り値が同じで、引数が違うメンバ関数が、オーバーロードされた
メンバ関数。これの使用例はこんな感じ」

void Use_CHasOverload()
{
    CHasOverload cHasOverload;
    cHasOverload.Overloaded();
    // Overloaded()
    cHasOverload.Overloaded( 100 );
    // Overloaded( 100 )
}

『引数があるのとないのとで別のが呼ばれるわけね』
「これは一番わかりやすい例。引数の数が違うから、どっちが呼ばれるかっ
ていうのは一目瞭然だからね」
『そか、引数の数が同じで、型が違うっていうのもオーバーロードなんだ』
「というわけでその例」

// オーバーロードしたメンバ関数を持つクラス２。
class CHasOverload_SameType
{
public:
    // メンバ関数１。
    void Overloaded( LPCTSTR p_pch )
    {
        TRACE( "Overloaded( %s )\n", p_pch );
    }

    // メンバ関数２。
    void Overloaded( int p_i )
    {
        TRACE( "Overloaded( %d )\n", p_i );
    }
};

『上は文字列で、下は整数ね』
「使用例はこんな感じ」

void Use_CHasOverload_SameType()
{
    CHasOverload_SameType cHasOverload;
    cHasOverload.Overloaded( "テスト" );
    // Overloaded( テスト )
    cHasOverload.Overloaded( 100 );
    // Overloaded( 100 )
}

『なるほど、文字列を渡すか、数値を渡すかでどっちの関数が呼ばれるかが
決まるわけねー、これは便利かも』
「ただ、この自動的に決まる、っていうのは実は危険な面もあるんです」
『危険？』
「たとえば、文字列が NULL だった場合」

void Use_CHasOverload_SameType()
{
    CHasOverload_SameType cHasOverload;
    cHasOverload.Overloaded( NULL );
    // Overloaded( 0 )
    cHasOverload.Overloaded( 100 );
    // Overloaded( 100 )
}

『……あれ？　もしかして両方とも int の方が呼ばれてる？』
「そうなんです。  Version 5.11 ( No.076 ) で教えたように、 NULL は数
字の 0 だから int の方が呼ばれちゃうんです」
『え？　 NULL ってアドレスの 0 ってことじゃなかったの？』
「さっきの No.076 でも触れてるけど、 NULL って、ホントの数字の 0 な
んです」
『えーでもさ』

    int *pi = 0x10000000;

『みたいに、ポインタにアドレスの数字って直接入れられないよね』
「うん、ダメだよ、コンパイルエラーになるから。ところが、実は〈 0 だ
けはどんなポインタにも入れることができる〉っていう特例があるんです」
『ず、ずるい……』
「確かにね。だからこそ、上のような問題が出てくるわけ」
『あ、やっぱ問題なんだ』
「そう。だから、本当は数字と文字列でオーバーロードするのは危険なこと
なんです。結構多いけどね」
『多い？』
「 CString でもしてるし」
『げ』
「 No.076 で〈 NULL じゃなくて 0 って書く人もいる〉のは、そういう紛
らわしさをできるだけ取り除くためなんです」
『そか、上の例でも NULL じゃなくて 0 ならわかるもんね』
「あと、オーバーロードしてる関数は、あまり動作を変えないようにするの
がコツかな」
『どーゆーこと？』
「上の例だとどっちも TRACE() で出してるだけだけど、これがもし、片方
は TRACE() でもう片方はファイルに出力してたら」
『げ、それはヤダね』
「だから、オーバーロードは〈引数の型が違っても同じ結果になる〉ってい
う場合にするのがいいと思うよ」
『結果が違う場合は？』
「メンバ関数の名前を変えればいいでしょ」
『あ、そっか』
「最後に、オーバーロードした関数の戻り値について。オーバーロードした
時にはそれぞれ別の戻り値の型にすることができます」

// オーバーロードしたメンバ関数を持つクラス３。
class CHasOverload_OtherReturn
{
public:
    // メンバ関数１。
    void Overloaded( LPCTSTR p_pch )
    {
        TRACE( "Overloaded( %s )\n", p_pch );
    }

    // メンバ関数２。
    int Overloaded( int p_i )
    {
        TRACE( "Overloaded( %d )\n", p_i );
        return p_i;
    }
};

『片方は void でもう片方は int ね』
「使う場合にはこんな感じ」

void Use_CHasOverload_OtherReturn()
{
    CHasOverload_OtherReturn cHasOverload;
    cHasOverload.Overloaded( "テスト" );
    // Overloaded( "テスト" )
    int i = cHasOverload.Overloaded( 100 );
    // Overloaded( 100 )
    TRACE( "%d\n", i );
    // 100
}

『もし文字列の方で int を受け取ろうとしたら？』
「そうするとコンパイルエラーになります」

    int i = cHasOverload.Overloaded( "テスト" );
    // error C2440: 'initializing' : 
    // 'void' から 'int' に変換することはできません。
    // void 型の式は他の型へ変換できません。

『へー』
「これはとっても重要なこと。実は、どの関数が呼ばれるかは引数でしか決
められないんです。言い換えると、戻り値でオーバーロードすることはでき
ないってこと」
『？』
「たとえば」

// オーバーロードしたメンバ関数を持つクラス４。
class CHasOverload_OtherReturn_Bad
{
public:
    // メンバ関数１。
    void Overloaded()
    {
        TRACE( "Overloaded()\n" );
    }

    // メンバ関数２。
    int Overloaded()
    {
        TRACE( "Overloaded()\n" );
        return 100;
    }
};

『引数がなくて、戻り値が void と int ……あ、戻り値でオーバーロード
ってこういうことね』
「これをビルドしてみると」
『げ、コンパイルエラー出まくり』

error C2556: 
'int __thiscall B1::CHasOverload_OtherReturn_Bad::Overloaded(void)'
 : オーバーロード関数の戻り値は異なっていますが、
引数リストは同一です。

「というわけで、戻り値だけ変えたり、戻り値でどの関数を呼ぶか決めさせ
たりっていうのはできません」
『ちょっと不便かも〜』

/*
    Preview Next Story!
*/
『便利だけど危険、って難しいね』
「これからはそういうの増えてくからね」
『むむむ』
「でもそういう世界に踏み込むと、一人前のプログラマーって言えるかも」
『い、いつのまにそんなとこまで？？？』
「遠回りしたけど結構身に付いてると思うよ」
『へ〜』
「というわけで次回」
＜ Version 11.20 演算子をオーバーロードしよう ＞
『につづく！』
「でもまだ半分も教えてないけど」
『げ！』


////////////////////////////////////////////////////////////////////
/*                ２００３年８月１８日（月）の更新                */
http://www.kab-studio.biz/

・ほとはー１話追加予定
　三人合体ホットハーブに１話追加予定。第５話完結！


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

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.biz/nikki2/
・購読登録を解除したいときにはこのページで行なってください。
＊http://www.mag2.com/m/0000012198.htm
＊http://www.pubzine.com/detail.asp?id=000590
・解除は自分で行なってください。
・バックナンバーはこれらのページにあります。
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 - 2003 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.com
*/
////////////////////////////////////////////////////////////////////

