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

    KAB-studio.h


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

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

////////////////////////////////////////////////////////////////////
/*            夏コミに来てくれてありがとうございました！！        */

　夏コミの結果ですが、

・ほとはー：５冊
・ KAB-studio.ROM ：８枚

　とゆー惨憺たる結果になりました（爆）。
　でも結構満足もしています。詳しくはしくはちょお普通な日記８月１７日
をご覧ください。
[ ちょお普通な日記８月１７日 ]
http://www.kab-studio.biz/nikki2/n15_08b.html#20030817


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

・ほとはー１話追加！
　三人合体ホットハーブに１話追加。第６話完結！
[ 三人合体ホットハーブ ]
http://www.kab-studio.biz/Comic/HotHerb/index.html


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

2003/08/10 (Sun)
　KAB-studio.ROM の準備。今日の一枚はその風景。なぜか exe の中にテキ
ストファイルが。昔のに混入してる exe 削除してウィルススキャンかけ
て。データ揃えて焼き始めて。結局５０枚。通販どうするか。夏コミへの準
備はほぼ完了。ウイイレマスターリーグ、終わった……。そして 
oleaut32.dll 。そして３ＤＣＧ。

2003/08/11 (Mon)
　体調悪いモード。帰りに横浜でバッグとか購入。涼宮ハルヒの憂鬱読了。
アイディアとかいいんだけどいまいち？　今日の一枚はネコミミパプリカ。
お盆休みなんですね。

2003/08/12 (Tue)
　お仕事はドキュメントひとつほぼ完成。帰ってからウイイレ。今日の一枚
はとことこアル。 Vector のバナー……。

2003/08/13 (Wed)
　なんかやる気なし。帰りに Kanan Fan Disc と満月をさがして１３巻とか
色々購入。今日の一枚は満月。体重なかなか６５キロを切らない。 Windows 
Update と KB823980 。そしてアルたん。

2003/08/14 (Thu)
　仕事何したか忘れた。ウイイレ対戦したらあっという間。それだけ。そし
てほとはーの次の話。

2003/08/15 (Fri)
　徹ゲー。 F-ZERO GX は一人用。６時間半 N64 マリオカート耐久レース。
寝スケジュール。ステルヴィアがとてもいい感じ。かぶヘッダーとほとはー
描きました。

2003/08/16 (Sat)
　とりあえず寝て１２時起き。ほとはー本編の方を印刷しようとしたらイン
クが足りなかった（泣）。目印はパプリカ。どのくらい売れるかねぇ。今日
の一枚はキラとカガリ。ほとはーのＡＰとデザイナーチャイルド。コミケが
来る……。


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

■　第八章　朱と碧　−８−

「もうひとつ、重要な事を教えておかねばならん」
　曇っていた顔を上げさせて、赤葉は話を続けた。
「それはこの下、泉の底についてのことだ」
「これ、底なんてあるんですか？」
「やはり、ないと？」
「ここではどうするかわからないですけど……」
　完全な闇。不安を駆り立てる音。着くことのない足。落ちていく体。
「……私が泉の能力を受け継いだとき、私は泉のずっとずっと下に落ちてい
ったんです。母も、兄も、辿り着けなかったずっとずっと深い泉の底の
底……」
　その時の事を鮮明に思い出しても、恐怖には継ながらない。
「気付いたら、私は泉の上に浮かんでた。でも、下に沈んでいたのは確かだ
し、底に着く前に、何かあったと思う。能力を受け継ぐ儀式みたいなもの
が」
「恐らく、底はない」
　ふたりは炎が盛る泉の底を見ようとする。
「口伝であるから確かとは言えぬが、泉とは龍の口だと伝え聞いたことがあ
る」
「龍の口？？」
　龍、という言葉は舞にとって突飛すぎた。
「風水に龍脈という概念が存在する。大地を巡る気の流れを龍脈と呼び、そ
の龍脈が途切れ大地に放たれた部位を龍穴と呼ぶ」
「その龍穴が、泉ということですか？」
「尤も、その全てが当てはまるとは考えてはおらん。大地に龍が埋まってい
るはずなぞないしな」
　赤葉は少し笑みを浮かべて、舞もつられて笑った。
「だが……私は感じ取る事ができる。この泉を通して、四方八方に伸びる何
かを。そしてその先にある、力の澱みを」
「それが、他の泉」
「恐らく。まず結白殿に習得していただかなければならない事は、この泉の
大気を感じ、龍脈を感じ取ること、となる」
　それが、他の泉を見つけ出す近道になる。
「わかりました。よろしくお願いします」
　舞は、礼をした。
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
『夏コミ、終わったね』
「終わったね……」
『つか、やっぱこのメルマガって読まれてないんじゃない？』
「う”っ」
http://www.kab-studio.biz/
_______________________________________________________________[KCM]

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

　Version 11.20
演算子をオーバーロードしよう

「今回は演算子をオーバーロードしてみます」
『演算子のオーバーロードって、クラスで演算子使うためのだよね』
「そう、 Version 7.09 ( No.129 ) でやったね。今回はこれを作ってみま
す。まずは基本的な例から」

// 演算子のオーバーロード。
class CHasOperator
{
private:
    int m_i;
public:
    // 演算子のオーバーロード。
    int operator = ( int p_i )
    {
        m_i = p_i;
        TRACE( "= %d\n", m_i );
        return m_i;
    }
};

『やっぱなんか見慣れない……』
「使い方はこう」

// 使用例。
void Use_CHasOperator()
{
    CHasOperator cHasOperator;
    cHasOperator = 100;
    // = 100
}

『 = でメンバ関数呼べるようになる、ってことだよね』
「そう。オーバーロードの構文はこんな感じ。

    戻り値 operator 演算子 ( 引数 )
    {
        // メンバ関数の本体。
    }

「結構自由度は高いから。戻り値や引数は好きなものにできるよ」
『今回は戻り値が int 、引数も int ね。戻り値って必要？』
「場合によるかな。たとえば、普通の int の場合」

    int i1;
    int i2;
    i1 = i2 = 100;

「っていうふうに〈他に代入したのをまた他に代入〉っていうことができる
んです。戻り値を int にしておけば、同じように」

    CHasOperator cHasOperator1;
    CHasOperator cHasOperator2;
    cHasOperator2 = cHasOperator1 = 100;
    // = 100
    // = 100

「っていうことができるんです」
『こうすればより演算子に似るわけね』
「言い換えると、演算子に似た使い方ができるようにするには、色々とコツ
が必要なんです」
『確かに、これは知らないとできないね』
「それと、演算子にできるだけ似せることがコツのひとつとも言えるかな」
『どゆこと？』
「たとえば」

    // 演算子のオーバーロード。
    int operator = ( int p_i )
    {
        m_i -= p_i;    // ＜ここ。
        TRACE( "= %d\n", m_i );
        return m_i;
    }

『あ、 -= になってる』
「演算子のオーバーロードをすると、こういうこともできちゃうんだけど、
こういうことをすると混乱の元だからやめた方がいいかな」
『 = だったら中に代入するだけ、って感じに演算子に似せるわけね』
「そゆこと。あと、引数の数に関しては制約があって、こっちはちょっと難
しいかも。 Version 6.09 ( No.109 ) で【単項演算子】や【二項演算子】
ってやったでしょ」
『演算子にくっつける変数の数だね。あ！　そっか、それが引数の数になる
んだ』
「そういうこと。オペランドのひとつは自分自身になるから、 1 引いた数
が引数の数ってことだね。たとえば、 ++ は単項演算子だからオペランドは
ひとつ」
『で、自クラスの 1 をひくと……ゼロだね』
「だから、引数はいらなくなります」

// 演算子のオーバーロード。
class CHasOperator_Increment
{
private:
    int m_i;

public:
    // コンストラクタ。
    CHasOperator_Increment()
    {
        m_i = 0;
    }

    // ++ 演算子のオーバーロード。
    int operator ++()
    {
        ++m_i;
        TRACE( "++ %d\n", m_i );
        return m_i;
    }
};

「使用例はこんな感じ」

void Use_CHasOperator_Increment()
{
    CHasOperator_Increment cHasOperator;
    ++cHasOperator;
    // ++ 1
}

『ってことは、演算子ごとにそういうの考えなきゃいけないの？？　めんど
くさー』
「さらにめんどくさいことに、 ++ って ++i っていう形式と i++ っていう
形式とふたつあったでしょ」
『 ++i が先に 1 増やして、 i++ があとで 1 増やすんだよね』
「そう、 Version 2.7 ( N0.018 ) でやったね。このふたつは区別されて
て、 i++ の方を作りたい場合には int の引数ひとつを入れることになって
ます」

    // 後置 ++ 演算子のオーバーロード。
    int operator ++ ( int p_i )
    {
        ++m_i;
        TRACE( "++ %d\n", m_i );
        return m_i;
    }

『なんかややこしいね……』
「あらかじめ言っておくと、これからさらにややこしくなるから」
『げ！』
「なぜかっていうと、元々あった仕様に無理矢理追加したから」
『演算子のオーバーロードってあとから付け加えたものってこと？』
「そういうこと。だから色々と矛盾とか問題とかあるんです」
『……使わない方がよくない？』
「微妙だね。メリットも多いから使った方がいいけど、他の言語では採用さ
れてないから、むしろデメリットの方が多いって考え方もあるかも」
『うーん……』
「でも、 C++ やる上では必要だから」
『う”、つまり私は勉強しなきゃいけないってこと？』
「そゆこと」
『うー』
「最後に、型変換をしてくれるオーバーロードを紹介します」
『型変換？』
「 Version 5.22 ( No.087 ) や Version 7.09 ( No.129 ) で紹介した、自
動的に他の型にくれる機能のこと」
『あー、 CString を LPCTSTR に、とかね』
「そうそれ。というわけでその例がこれ」

// 演算子のオーバーロード。
class CHasOperator_Return
{
private:
    int m_i;

public:
    CHasOperator_Return()
    {
        m_i = 0;
    }

    // 型変換演算子のオーバーロード。
    operator int()
    {
        TRACE( "(int)%d\n", m_i );
        return m_i;
    }
};

「使用例はこんな感じ」

void Use_CHasOperator_Return()
{
    CHasOperator_Return cHasOperator;
    int i = cHasOperator;
    TRACE( "%d\n", i );
    // (int)0
    // 0
}

『おー、 int に渡せば operator int() が呼ばれるってわけね。でもこの
関数、戻り値なくて変……』
「戻り値は決まってるから必要ないって事みたいだね」
『決まってる？　あ、そっか、 int に渡すんだから int なんだ。……あ
れ？　でもさ、オーバーロードって、戻り値で選べないんじゃないの？』
「うん、だからこれは特別。書き方も使い方も特別って感じかな」
『なんか変なの。便利だけど』

/*
    Preview Next Story!
*/
『なんか、今までと勝手が違うかも』
「便利だけど危険、とか？」
『そうそう。教わってそれ使うだけでいい、じゃダメなの？』
「それじゃ、教わったことしかできないでしょ」
『うー』
「プログラミング言語の裏にある本質を見極めなきゃ」
『どっかの格闘バカみたい』
「というわけで次回」
＜ Version 11.21 「演算子のオーバーロード」の意味 ＞
『につづく！』
「次回もそういうむつかしい話」
『タイトルが微妙に哲学っぽい感じ……』


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

・ほとはー１話追加予定
　三人合体ホットハーブに１話追加予定。第６話は築地のおうちの話〜。

・KAB-sudio.h 縮刷版更新の予定
　KAB-studio.h が２２０号に達したので縮刷版を更新します。


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

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.biz/nikki2/index.html
・購読登録を解除したいときにはこのページで行なってください。
＊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
*/
////////////////////////////////////////////////////////////////////

