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

    KAB-studio.h


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

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

////////////////////////////////////////////////////////////////////
/*              ８月４日にかぶスタは移転します！！                */

　KAB-studio は８月４日に移転します。詳しくは移転のおしらせをご覧く
ださい。ちなみに実際には３日の間に移転するので、３日はちょっと変な状
態になってるかも……。
[ 移転のおしらせ ]
http://www.kab-studio.biz/Info/Removal/


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

・ほとはー１話追加！
　三人合体ホットハーブに１話追加。ハオシャオ……は出てきませ
ん（汗）。
[ 三人合体ホットハーブ ]
http://www.kab-studio.com/Comic/HotHerb/

・Codian オフライン版更新！
　Codian オフライン版を更新します。ずっと古いままだったので。
　ってゆーか「古いよ」って書いてあってもダウンロードされまくってたん
で……。
　そのダウンロードはダウンロードルームにて。
[ ダウンロードルーム ]
http://www.kab-studio.com/Freeware/index.html#Codian


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

2003/07/20 (Sun)
　ゆめりあネイト様シナリオクリア。ネイト様……あなたを想うと……。
ほとはー夏コミ版完成。最後に手を加えたのが結構大変だった。３００円の
価値はある？　そしてプラグインと ActvieX 。

2003/07/21 (Mon)
　モネシナリオクリア。ゆめりあ結構お勧めですよー。ゆめりあキャラベス
ト７。ほとはー夏コミ版ほぼ完成。１６ページって短い……。でも良くでき
たなぁ。あとはゲスト原稿を待つだけ。そして MSDN と Visio 。

2003/07/22 (Tue)
　ゲスト原稿を追加して解像度とか全ページチェックして EPS で保存して
Ｒに焼いて、必要な書類を書いて、それからねこのしっぽ様へ。入稿完了。
とりあえずひと段落。帰りにハンズでコミケ用グッズを購入。疲れまくり。
そして大型汎用機とかスパコンとか。

2003/07/23 (Wed)
　遅刻しそうになる。夏コミまでのスケジュール。搬入ＯＫ。アンソロ８冊
購入。とらのあな横浜店。ガンスリンガーガールがゲーム化……。

2003/07/24 (Thu)
　会社でぼけぼけ。 UML シルバー。 KAB-studio.ROM ってどうすればい
い？　不織布に入れるだけじゃだめだよね……。

2003/07/25 (Fri)
　お仕事は作り込み＆デバッグは完了。帰りに秋葉原行ったら雨。ゆめりあ
サントラとか購入。Ｒそんなに安くなかった……。そしてＣＤ−Ｒの梱包。
そして不織布賛成。

2003/07/26 (Sat)
　かなりのんびり。午前中に洗濯。午後にほとはー。 Codian オフライン版
更新の真実。テレビはどれもいい感じ。そして不織布から出ないために。


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

■　第八章　朱と碧　−５−

　工場の外壁だけが残る広大な空間の中に、一人のＡＷとひとつの椅子があ
る。行雄は椅子に座り、袖に包まれていない左腕を掲げる。
　肌色は瞬時に緑黄色に変わり、硬質化する。巨大な盾の形状。その間、１
秒も掛からない。
　それが、再びヒトの手に戻る。形も色も元に戻ったのを確認して、再び盾
へと変化させる。
　それをただひたすら、黙々と繰り返す。
　笑みを浮かべて。
「酷い格好だ」
　青年が入ってきて言う。行雄は確かに背広を着ていたはずだったが、両袖
が完全に破り取られていた。
「なんか、おもしろくて」
　今度は右腕を掲げる。その手が剣に変わる。
「だが、使わなければ意味がないだろう？」
　青年が渡した紙切れを見て、行雄の目が輝く。
「最短距離を行けば明日の早朝には着くはずだ。まず、このふたりのうち、
どちらかを生け捕りにしてくれ」
　２枚の写真。舞と雅樹。
「ふたりのうち、ということは」
「残りは殺していい」
「……殺して？」
「敵、だからな」
「敵、ですか」
　行雄は真面目な表情で写真を見ている。が、その焦点は合っていない。
「もしそこに他の人間がいたら、皆殺しにしてくれ。おそらく敵の本拠地だ
からな」
「わかりました」
「では、今から行ってくれ」
　答えることさえせずに、行雄は走り出していた。
「いいのかね？」
「何がです？」
「……左がいたら、殺してしまうんじゃないのか？」
　石和は質問を変えた。
「君の手で殺したいんじゃないのか？」
「それは、ない」
　青年は、唇を舐めた。
「あいつの居場所は常にトレースしていますから。だから」
　発砲音。突然発砲した青年を目の前にして、石和は心臓が止まったかと
思った。
「それは、ありません」
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
『なんかすっごくドタバタしてるね』
「今週は Codian オフライン版、来週移転、８月中旬に夏コミ」
『たてこんでるねー』
「というか、全部夏コミに合わせてるみたいだね」
『そなの？』
「夏コミで初めてかぶスタを知る人もいるだろうから」
『それまでに移転しておくって？　つかそんな人いるの？』
「さぁ……」
『 Codian のも関係してるの？』
「 Codian のオフライン版を作るのが、移転と関係してるみたいだね」
『だからこんなたてこんじゃってるわけね』
「まぁこれも夏コミまでの辛抱かな」
『ホントに？』
「たぶん……」
http://www.kab-studio.com/
_______________________________________________________________[KCM]

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

　Version 11.17
コンストラクタとデストラクタを作る！

「まず、前回の補足から。前回作った CHasMemberFunction って、いつも見
てるクラスとちょっと違ってなかった？」
『あ、そういえばメンバ関数って、クラスの中にないよね、フツー』
「そう。このクラスをいつものように、メンバ関数を外に出して書くとこう
なります」

// メンバ関数を持つクラス。
class CHasMemberFunction
{
private:
    int m_iData;

public:
    int GetData() const;
    void SetData( int p_i );
};

// ここからがメンバ関数の定義。
int CHasMemberFunction::GetData() const
{
    return m_iData;
}

void CHasMemberFunction::SetData( int p_i )
{
    m_iData = p_i;
}

「普通は、 CHasMemberFunction 本体はヘッダーファイルの方に置いて、
メンバ関数そのものはソースファイルの方に置きます」
『ダイアログクラスとかそうだよね』
「でも、前回みたいに書く事もできるってことで」
『どっちの方がいいの？』
「微妙。前回の方は、クラスの中に全部入ってるからそれさえ見ればいいっ
ていうメリットがあります」
『うん、ヘッダーファイルだけでいいんだもんね』
「でも、今回みたいに書くと、クラスの方にはメンバ関数一覧が載ってて一
覧になる、っていうメリットがあります」
『でも、それって ClassView 見ればいいんじゃない？』
「そうだね。実は、前回の方法はとっても複雑な問題があって、初心者には
おすすめしません」
『ええっ！？　何その複雑な問題って』
「簡単に言えば、ソースファイルは〈見られてない〉けど、ヘッダーファイ
ルは〈見られてる〉ってこと」
『？？？』
「この件は２章くらい後になってから説明するから」
『ぶー、なんかかなり先』
「ま、それだけ難しいってことで。だから、自分でちゃんとしたクラスを作
る時には、今回の方法、つまりソースとヘッダーに分けるようにしてね」
『はーい』
「でも、説明は前回の方法で書くから」
『げ』
「そっちの方がクラス全体をいっぺんに載せられるしね。では、今回のテー
マ」
『コンストラクタとデストラクタを作るの？』
「そう。実は簡単」

// コンストラクタを持つクラス。
class CHasConstructor
{
public:
    // コンストラクタ。
    CHasConstructor()
    {
        TRACE( "CHasConstructor::CHasConstructor()\n" );
    }

    // デストラクタ。
    ~CHasConstructor()
    {
        TRACE( "CHasConstructor::~CHasConstructor()\n" );
    }
};

『そう言えば言ってたね、コンストラクタはクラス名と同じで、デストラク
タは ~ が付くって』
「そう、 ~ だからね。 ^ じゃないから気を付けて」
『 ~ とか ^ ってなんてゆーの？』
「 ~ は【チルダ】が正式名称。でも【にょろ】っていうこともあるかな。 ^
は【ハット】が正式名称だと思う」
『ハットって帽子？』
「そう。あ、あと、コンストラクタとデストラクタ、両方とも戻り値がない
って事に注意してね」
『ホントだ。なんで？』
「だって、受け取れないでしょ。使用例はこんな感じ」

void Use_CHasConstructor()
{
    CHasConstructor cHasConstructor;
}

『変なことすれば受け取れそうな気もするけど、こういう使い方だと戻り値
は無理っぽいね』
「ブレークポイント置いてステップインとかしてみると、どういうふうに関
数が呼ばれるのかわかると思うよ」
『ほい。うん、変数が作られた時にコンストラクタが呼ばれて、この関数か
ら出るときに変数が消えるからデストラクタが呼ばれてる』
「で、今のは本当にテスト用だから、今度はもう少し実用的なものを見てみ
ましょう」

class CHasConstructorAlloc
{
private:
    int *m_piData;

public:
    // コンストラクタ。
    CHasConstructorAlloc()
    {
        m_piData = new int;
        *m_piData = 0;
    }

    // デストラクタ。
    ~CHasConstructorAlloc()
    {
        delete m_piData;
    }

    // データを返します。
    int GetData() const
    {
        return *m_piData;
    }
};

『えーっと、 int のポインタをメンバ変数として持ってて、コンストラク
タで new してデストラクタで delete 、あー Version 11.12 ( No.212 ) 
で言ってたのだね』
「そういうこと。こういうふうに、コンストラクタとデストラクタで対に処
理させればいいわけ。一応、使い方は」

void Use_CHasConstructorAlloc()
{
    CHasConstructorAlloc cHasConstructorAlloc;
    TRACE
        ( "%d\n"
        , cHasConstructorAlloc.GetData()
        );
}

「こういう感じ」
『 GetData() は前回のと同じ感じね』
「そう。これは重要なことなんだけど、こういう時に」

    // こういうメンバ関数は作っちゃダメ！
    int *GetDataPoionter()
    {
        return m_piData;
    }

「ってメンバ関数をこのクラスに作っちゃダメだから」
『中のポインタを直接返してるんだね。でもなんでこれがいけないの？』
「こういう使い方ができるから」

void Use_CHasConstructorAlloc_Bad()
{
    CHasConstructorAlloc cHasConstructorAlloc;
    int *pi = cHasConstructorAlloc.GetDataPoionter();
    free( pi );
}

『ポインタを受け取って……げ！！　 free() で解放してる！！』
「まぁこれはかなり極端な例だけど、こういうことができるってこと」
『このメンバ関数がなければできない？』
「うん。 m_piData は private だからアクセスできないでしょ」
『そのための private ？』
「そういうこと。たとえばね、 m_piData を public にして、外で new し
たり delete したりってすることもできるわけ」
『でもそれって意味ないじゃん』
「そう、ちゃんと new と delete でしたいから、 private にして、こうい
うふうにクラスの中だけで処理してるわけ」
『その方が確実だもんね』
「でも、場合によっては new と delete じゃいけないっていうときもある
かもしれない」
『場合？』
「 API 使って特殊なことしなきゃいけないときとか」
『あー、そういう機能があるって言ってたね』
「そういう場合でも、このクラスを使う限り、それは無理なわけ」
『修正しちゃえばいいんじゃない？』
「そう、結局そうなるわけだね。修正しない限り、クラスの動作は変えられ
ない。クラスが正しい処理をしてくれれば、それは修正しない限り必ず正し
く処理される。でも間違った処理をしていれば」
『修正しない限り直らない』
「そう。クラスには、こういう〈閉じている〉っていう性質があるんです」
『閉じてる、周りから邪魔されない、だから結果は確実』
「そういうこと」
『って、これってなんか重要な事？』
「実はすごく重要なことなんだけど、それは先の先の話って事で」
『先の先……』

/*
    Preview Next Story!
*/
『なんか先ばっか！』
「プログラミングって、全部が継ながってたりするから」
『全体像が見えてこないとわかんない？』
「そう。かといって全体像だけ見ても」
『わからない、と』
「というわけで次回」
＜ Version 11.18 コンストラクタって複雑！ ＞
『につづく！』
「というわけでコンストラクタについてもっと細かく見てみましょう」
『それが全体像の理解に継ながると？』
「きっと」


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

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


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

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.com/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.com/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*
    KAB-studio.h
      Weekly Mail Magazine.
      Written by Kaburaya Seiden.
      http://www.kab-studio.com/Info/MailMagazine/

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

