////////////////////////////////////////////////////////////////////

　転┃職┃な┃ら┃　★無料転職サポート★　
　━┛━┛━┛━┛　　　　　　　　　　転職業界エキスパートが
　　　パ┃ソ┃ナ┃キ┃ャ┃レ┃ン┃ト┃あなたの転職を無料でサポート！
 　　 ━┛━┛━┛━┛━┛━┛━┛━┛
　まずは登録を→→→ http://af1.mag2.com/m/af/0000008658/001/s00000001423001/032

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

    KAB-studio.h


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

    送信日： 2005/11/21(Mon) No.333
    配信数： 1860
    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

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

2005/11/21 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
14.02 プロセスと同期
14.03 ファイルの排他処理
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

2005/11/21 (Mon)
　ほとはー外伝３……はお休みです、ごめんなさい。
http://www.kab-studio.biz/Comic/HotHerbA3/index.html


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

2005/11/13 (Sun)
　疲れた。某専門学校の問題作成を朝から晩までずっとやってまだ終わって
ない。これからカブカテキョ書きます。まだ終わってないって……まとめて
やるのは無理があったか。体調悪い…… OXYGEN O2 はまずいし……。

2005/11/14 (Mon)
　眠すぎる。昨日の反動でなにもできなかった。カブカテキョだけはなんと
か。

2005/11/15 (Tue)
　某専門学校のテキストの添削がメイン。量が多くてきつい……頭の中で読
んじゃうし……。頭痛い。目が痛いのが染った？　そして４８時間睡眠。

2005/11/16 (Wed)
　駄目な日。１１時に起きてお昼は軽めに。そのあと某専門学校の問題の
修正。時間掛かった……。合間に Fate したりも。夕方からは体調悪くなっ
て以上。そしてリフレッシュとオフ会。

2005/11/17 (Thu)
　５時寝１１時起き。作業効率は深夜が一番いい。今日もあんまりできず。
カブカテキョメイン。質問組は増やす方がいいかなぁ。そしてとろけるぐら
い。

2005/11/18 (Fri)
　今日も駄目な一日。昨日の夜は何もできず。今日は JavaA2Z 書いたぐら
い。時間計ったりするかなぁ。何もしてない時間に散歩したいんだが。

2005/11/19 (Sat)
ゼミOB会のためお休み。


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

2005/11/13 (Sun)
http://d.hatena.ne.jp/kab_studio/20051113
起きたー。
[Prog]ぷらとわ追加。
[ほとはー]ほとはー外伝３ P.42
半分終わった……。
疲れた……。
やべぇ……。
やっと終わった……。

2005/11/14 (Mon)
http://d.hatena.ne.jp/kab_studio/20051114
起きたの。
ダメだ。
Google Analytics
[Machician]第１１話 闇の背中 (15) [△ ▽]

2005/11/15 (Tue)
http://d.hatena.ne.jp/kab_studio/20051115
起きましたよ。
[アニメ]Canvas2 第7話「潮騒のサンドベージュ」 
[アニメ]ガン×ソード 第20話「ワンダフル・ユニバース」
[アニメ]絶対少年 第25話「世界の被膜が穴だらけ」
[アニメ]銀盤カレイドスコープ 第6話「チェンジ！」
[アニメ]蟲師 第4話「枕小路」
[アニメ]おねがいマイメロディ 第33話「みんな来てくれたらイイナ！」
[アニメ]ゾイドジェネシス 第32話「ソラノヒト」
[アニメ]魔法戦隊マジレンジャー 第37話「狙い撃ち〜ゴル・マージ〜」
[アニメ]交響詩篇エウレカセブン 第30話「チェンジ・オブ・ライフ」
[アニメ]おジャ魔女どれみ ナ・イ・ショ 
　第13話「時をかけるお雛さま 〜どれみのないしょ〜」(終)
[JavaA2Z]単語追加。
[Machician]第１１話 闇の背中 (16) [△ ▽]

2005/11/16 (Wed)
http://d.hatena.ne.jp/kab_studio/20051116
起きます。
Google Analytics
[Machician]第１１話 闇の背中 (17) [△ ▽]

2005/11/17 (Thu)
http://d.hatena.ne.jp/kab_studio/20051117
起きましたのです。
[アニメ]灼眼のシャナ 第7話「二人のフレイムヘイズ」
[アニメ]ARIA 第7話「その 素敵なお仕事を…」
[アニメ]IGPX 第7話「春が来た」
アップルのiMac G5プレゼントキャンペーンについて
[Fate/hollow ataraxia]花札。
[装備]ビデオ直った。
Amazon.co.jpに「スポーツ」ストアがオープン
Google Analytics。
Google Sitemap
[Machician]第１１話 闇の背中 (18) [△ ▽]

2005/11/18 (Fri)
http://d.hatena.ne.jp/kab_studio/20051118
起きたー。
[アニメ]かりん 第3話「幸せって恥ずかしい」
[アニメ]SHUFFLE! 第18話「稟の好きなヒト」
[アニメ]舞-乙HiME 第7話「蒼の舞／乙女の契り」
[アニメ]ローゼンメイデン・トロイメント 第5話「手紙」
[アニメ]SoltyRei 第7話「小悪魔の訪問」
[アニメ]ノエイン 第6話「ナミダノジクウ」
[アニメ]魔法少女リリカルなのはA’s 第7話「壊れた過去と現在となの」
[JavaA2Z]単語追加。
[Fate/hollow ataraxia]カレン襲来。
[Machician]第１１話 闇の背中 (19) [△]

2005/11/19 (Sat)
http://d.hatena.ne.jp/kab_studio/20051119
うそ起きた。
[アニメ]絶対少年 第26話「頼りなく豊かな冬の終わり」(終)
[Fate/hollow ataraxia]バゼットさん再び。


////////////////////////////////////////////////////////////////////
// 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

■追加・更新単語

BufferedReader
PushbackReader
FileReader
LineNumberReader
FilterReader
InputStreamReader
Reader
LineNumberInputStream
ブロックします


////////////////////////////////////////////////////////////////////

　転┃職┃な┃ら┃　★無料転職サポート★　
　━┛━┛━┛━┛　　　　　　　　　　転職業界エキスパートが
　　　パ┃ソ┃ナ┃キ┃ャ┃レ┃ン┃ト┃あなたの転職を無料でサポート！
 　　 ━┛━┛━┛━┛━┛━┛━┛━┛
　まずは登録を→→→ http://af1.mag2.com/m/af/0000008658/001/s00000001423001/032

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

　Version 16.06
インラインメンバ関数

『質問！』
「はい火美ちゃん」
『前回、基本的なクラスについて教えてもらいました』

// Data.h

// CDataクラス。
class CData
{
private:
    // private メンバ変数。
    int m_iData;

public:
    // m_iData の getter 。
    int GetData() const;
    // m_iData の setter 。
    void SetData( int p_iData );
};


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

#include "Data.h"

// m_iData の getter 。
int CData::GetData() const
{
    return m_iData;
}

// m_iData の setter 。
void CData::SetData( int p_iData )
{
    m_iData = p_iData;
}

『でも、 Version 11.16 ( No.216 ) の時は、こうでした』

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

public:
    // 値を返します。
    int GetData() const
    {
        return m_iData;
    }

    // 値をセットします。
    void SetData( int p_i )
    {
        m_iData = p_i;
    }
};

『どっちが正しいんやねん！』
「そうだね、この使い分けについて説明していなかったね。まず、基本的な
機能は同じ。単純に言えば、書き方の問題、プログラミングスタイルの違い
です」
『見た目とか、プログラムの癖とかそーゆーこと？』
「基本的にはね。細かい所はちょっと違うので、それをこれから説明しま
す」
『ほい』
「まず、 Version 11.16 ( No.216 ) の CHasMemberFunction クラスのよう
に、クラスの中に入れられたメンバ関数は【インラインメンバ関数】と言い
ます」
『いんらいんめんばかんすう……？』
「そう。このメンバ関数はちょっと特殊で、呼び出し元に関数そのものが埋
め込まれます」
『埋め込まれる……って、マクロみたいに？』
「そういうこと。だから、呼び出しがちょっとだけ早くなります」
『でも、それってファイルサイズ大きくならない？』
「なります。それに、実際には埋め込まれるとは限らないから」
『へ？』
「 Version 15.23 ( No.323 ) で、【関数のインライン展開の制御】ってい
うオプションがあったでしょ」
『あ！　そういえばあの時も関数が埋め込まれるとかどうとか』
「これをオンにしないと埋め込まれないから、この〈埋め込まれる〉ってい
う機能はおまけとして考えて、あまりこだわらない方がいいかな」
『つまりそれを目的にして、こんな書き方しない方がいいってことね』
「そういうこと。じゃあ、メンバ関数を分けるのと分けないの、どちらが
いいのかという点について。まず、分けない場合、通常はヘッダーファイル
に書きます」

// Data.h

// CDataクラス。
class CData
{
private:
    // private メンバ変数。
    int m_iData;

public:
    // m_iData の getter 。
    int GetData() const
    {
        return m_iData;
    }

    // m_iData の setter 。
    void SetData( int p_iData )
    {
        m_iData = p_iData;
    }
};

// Data.cpp
// （空）

「このように、ヘッダーファイルの方に全て入れて、ソースファイルの方は
何も書かないようにします」
『？？？　それおかしいじゃん。コンパイルはソースファイル単位でするん
だから、こんなことしたらコンパイルされない……んじゃなくて、
インクルードしたソースファイル全部でコンパイルされちゃうんじゃ……』
「それがされないんです。確かにソースファイルがないとそのオブジェクト
ファイルは作られないんだけど、インラインメンバ関数最初に使用する
ソースファイルでコンパイルしたら、あとはそれを使い回すんです」
『オブジェクトファイルがなくてもいい……他のオブジェクトファイルに
入ってるってこと？』
「そういうこと。だから、インラインメンバ関数の場合、ヘッダーファイル
に関数の実装を書ける、ということになります」
『ヘッダーファイルに書ける……とどうなるの？』
「ソースファイルが要らなくなります」
『ソースファイルが要らない……ちょっとそれ楽かも』
「でしょ。 C++ 言語は、ヘッダーファイルとソースファイルっていう2つの
ファイルでプログラムを管理するから、複雑になりやすいんです」
『それが、インラインメンバ関数を使えばヘッダーファイルだけになる！』
「 Java とかの、 C++言語以外のプログラミング言語は1ファイルだけで済
むものがほとんどだから、それに比べて C++言語はとても面倒なんだよね」
『うん、面倒面倒！　この方がずっと楽！　なんだ、じゃあ全部
ヘッダーファイルでやればいいんじゃん』
「実際、そういうふうに書かれたプログラムもあるよ。だから、そういう
流れもあるかも」
『じゃあ』
「でも、僕はお勧めしません」
『ええー？』
「一番の理由は、相互参照の解決が難しい点」
『相互参照……ってどっかで聞いたね』
「 Version 15.05 ( No.305 ) で説明したでしょ。あるヘッダーファイルが
他のヘッダーファイルの機能を使用する時に、順序がうまくいかなくなる、
っていうの」
『あー』
「たとえば CData クラスと CData2 クラスが以下のようになっていた場合」

// Data.h

// CDataクラス。
class CData
{
public:
    void Output()
    {
        OutputDebugString( "CData::Output()\n" );
    }

    void UseCData2()
    {
        CData2 cData2;
        cData2.Output();
    }
};


// Data2.h

// CData2クラス。
class CData2
{
public:
    void Output()
    {
        OutputDebugString( "CData2::Output()\n" );
    }

    void UseCData()
    {
        CData cData;
        cData.Output();
    }
};

『う、両方で使い合ってるね。これじゃ、使う方はどっちを先に
インクルードしてもエラーになるね……』
「これを解決するためには、定義の部分をソースファイルに移すしかないか
ら、結局ソースファイル使った方がいいかな。」
『それ以外にもデメリットってある？』
「結局問題は、定義の中ではいろんな関数やクラスを使う、ってこと。
ヘッダーファイルにそれを書くってことは、そのヘッダーファイルを
インクルードする前に、そういう関数やクラスの宣言が書かれた
ヘッダーファイルをインクルードしなきゃいけないでしょ」
『そか、ヘッダーファイルをインクルードするために、たくさんの
ヘッダーファイルをインクルードしなきゃいけないんだ』
「どれをインクルードしなきゃいけないとか、順番も気にしなきゃいけない
でしょ。ソースファイルに書いちゃえば、そのソースファイルで
インクルードすればいいだけだから」
『確かにその方が簡単そうだね……む、結局そうなっちゃうんだ』
「 C++言語は元々複雑な言語だから、ちょっと手間が掛かっても、
ソースファイルとヘッダーファイルの両方作った方が分かりやすくなるよ」

/*
    Preview Next Story!
*/
『うーん、今回のは結構良さそうだったのになー』
「 C++言語は簡単そうなものも実は複雑だから」
『他のも？　たとえば？』
「たとえば、ポインタに対する参照とか」
『あー、参照って簡単に使えるけど、逆にその辺があやふやかも』
「というわけで次回」
＜ Version 16.07 ポインタと参照のおさらい ＞
『につづく！』
「クラスをちゃんと理解する上で重要なおさらいです」
『おさらいはおさらいだと思うけど……』


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

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
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 - 2005 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz
*/
////////////////////////////////////////////////////////////////////

