━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
　技┃術┃者┃大┃募┃集┃！┃　 　◆あなたのキャリアを活かせます!! 
　━┛━┛━┛━┛━┛━┛━┛　 　◆スキルアップしたい方、大歓迎!! 
●━━━━━≪　http://af1.mag2.com/m/af/0000008658/001/s00000002620001/009　≫━━━━━━●
 　　　　　　　　　【株式会社ファーストメディア】　　　　　　　　　 
　　 　　　　　　　　　　　　▼　▼　▼　　　　　　　　　　　　　　 
　 　・サーバ(LinuxOS,WEB,DB,FW等)設計,構築,運用に理解のある方！ 　 
　 　・PerlやPHP,MySQL等、各種WEBプログラミングに理解のある方！　　 
　 　・やる気・向上心のある方、東京都内で勤務できる方！　　　　　　 
●━━━━━≪　http://af1.mag2.com/m/af/0000008658/001/s00000002620001/009　≫━━━━━━●
////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


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

    送信日： 2005/12/05(Mon) No.335
    配信数： 1841
    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

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

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


2005/12/05 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
14.06 ミューテックスで排他処理
14.07 デッドロック！
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


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

2005/11/27 (Sun)
　１２時半起き（汗）。アニメ観て感想書きつつカブカテキョで以上。
１２月はまた増えそう。「Ajaxで」に手を着けてない……。

2005/11/28 (Mon)
　１１時半起き。ほとはー外伝３をだらだらと。 JavaA2Z と Fate で以上。
明日は某専門学校の次のお仕事のお打ち合わせ。今週は駄目な週？

2005/11/29 (Tue)
　朝８時半に起きて、新宿の某専門学校へ。教壇に立つことになりそう。
カブカテキョをどうするか……。新宿ボンベイのカレー。秋葉原のメロブで
色々購入。帰ってからはぐだーっと。

2005/11/30 (Wed)
　１０時起き。早寝早起きモードに移行。某専門学校の代金が振り込まれ
た〜。なんか実感沸かん（汗）。お金とやりがいの関係。ほとはー外伝３
と JavaA2Z 。「現代用語の基礎知識2006」掲載。これが紙媒体初掲載とは
……。

2005/12/01 (Thu)
　１０時起き。調子いいから眠い？　「Ajaxで」できず、代わりにお絵描き
を。久しぶりのイラスト描きが楽しかった。ストックができてきたし調子も
いいし。

2005/12/02 (Fri)
　１０時過ぎ起き。起きられない……。カブカテキョは新しいお客さん。
お絵描きはまたスパッツ。「Ajaxで」は今日も……。散歩を１日１時間。

2005/12/03 (Sat)
　１０時過ぎ起き。まず JavaA2Z 、Ｊリーグ観たらお絵描き、その合間に
カブカテキョ。明日は朝から某専門学校へ。だから早く寝ないと。


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

2005/11/27 (Sun)
http://d.hatena.ne.jp/kab_studio/20051127
起きたー。
[Prog]ぷらとわ追加。
[ほとはー]ほとはー外伝３ P.43
[アニメ]おねがいマイメロディ 第35話「幸せが見つかったらイイナ！」
[アニメ]ゾイドジェネシス 第34話「強襲」
[アニメ]魔法戦隊マジレンジャー 
　第39話「あべこべ姉弟〜マジュナ・ジルマ〜」
[アニメ]ふしぎ星の☆ふたご姫 第35話「危機一髪☆プリンセスサミット」
[アニメ]銀盤カレイドスコープ 第8話「マスコミ戦争」
[アニメ]蟲師 第6話「露を吸う群」

2005/11/28 (Mon)
http://d.hatena.ne.jp/kab_studio/20051128
起きー。
[JavaA2Z]単語追加。
[Machician]第１１話 闇の背中 (25) [△ ▽]

2005/11/29 (Tue)
http://d.hatena.ne.jp/kab_studio/20051129
起きた。
帰ってきた。
[Google AdSense]振込
玄人志向 KRTV-AGB/U2
人生三分咲き。
[食]新宿ボンベイ
[買]メロブで買ってきたもの。
リンクターゲットの設定を追加しました
[Machician]第１１話 闇の背中 (26) [△]
[Machician]第１１話 あとがき。

2005/11/30 (Wed)
http://d.hatena.ne.jp/kab_studio/20051130
起きた。
[就職活動][教職]お振り込み。
[アニメ]はっぴぃセブン 第9話「芸は福をさずける」
[きらら]まんがタイムきららCarat 1月号
[JavaA2Z]単語追加。
現代用語の基礎知識2006到着
[Fate/hollow ataraxia]一応フルコンプ

2005/12/01 (Thu)
http://d.hatena.ne.jp/kab_studio/20051201
起きた……。
[アニメ]灼眼のシャナ 第9話「恋と欲望のプールサイド」
[アニメ]ARIA 第9話「その 星のような妖精は…」
[アニメ]IGPX 第9話「休日」
ねみぃ。
[JavaA2Z]単語追加。
アップルのiMac G5欲しい！
[絵]スパッツ

2005/12/02 (Fri)
http://d.hatena.ne.jp/kab_studio/20051202
起きた。
[アニメ]かりん 第5話「家族そろって恥ずかしい」
[アニメ]SHUFFLE! 第20話「忘れられぬ罪」
[アニメ]ノエイン 第8話「カクシゴト」
[アニメ]魔法少女リリカルなのはA’s 第9話「クリスマス・イブ」
[アニメ]舞-乙HiME 第9話「海ー水着＋遭難＝？」
[アニメ]SoltyRei 第9話「乙女達の休日」
[絵]スパッツ(2)
[JavaA2Z]単語追加。

2005/12/03 (Sat)
http://d.hatena.ne.jp/kab_studio/20051203
起きたよ。
[JavaA2Z]単語追加。
[絵]水着
[アニメ]ふしぎ星の☆ふたご姫 
　第36話「ダークなブライト☆嵐のプリンセスパーティ」
[アニメ]ガン×ソード 第22話「誰がために」


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

■追加・更新単語

一意
制約
NOT NULL制約
レコード
メッソド
LinkedHashMap
DOM
入れ子
DTD
XMLスキーマ
XMLスキーマ言語
friend
concat
NoSuchElementException
InvocationTargetException
アドレス
名前空間
TreeMap
Map


////////////////////////////////////////////////////////////////////
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
　技┃術┃者┃大┃募┃集┃！┃　 　◆あなたのキャリアを活かせます!! 
　━┛━┛━┛━┛━┛━┛━┛　 　◆スキルアップしたい方、大歓迎!! 
●━━━━━≪　http://af1.mag2.com/m/af/0000008658/001/s00000002620001/009　≫━━━━━━●
 　　　　　　　　　【株式会社ファーストメディア】　　　　　　　　　 
　　 　　　　　　　　　　　　▼　▼　▼　　　　　　　　　　　　　　 
　 　・サーバ(LinuxOS,WEB,DB,FW等)設計,構築,運用に理解のある方！ 　 
　 　・PerlやPHP,MySQL等、各種WEBプログラミングに理解のある方！　　 
　 　・やる気・向上心のある方、東京都内で勤務できる方！　　　　　　 
●━━━━━≪　http://af1.mag2.com/m/af/0000008658/001/s00000002620001/009　≫━━━━━━●
////////////////////////////////////////////////////////////////////
// #pragma twice
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

　Version 16.08
const メンバ関数

「今回は、 const なポインタ、参照、そして【const メンバ関数】につい
て説明します」
『 const メンバ関数って一応知ってるけど。これのことでしょ？』

    // m_iData の getter 。
    int GetData() const;

『この、関数の後ろに const って付いてるのがそうなんだよね』
「そう、でも実はすっごく奥の深いものなんです」
『そうは見えないけど……』
「後で、これ使いたくない！　って絶対言い出すから」
『な！　何それ、どういうこと？』
「まぁそれはあとで」
『う……』
「それはともかく、まずはポインタと参照の const について」
『これも、クラスとして使う場合の話ね』
「そういうこと。でも基本的には同じだけどね。まず、 const 関係は
Version 4.12 ( No.062 ) 、 Version 4.15 ( No.065 ) 、 それに
Version 5.03 ( No.068 ) で説明しました」
『結構やってるね』
「これを踏まえて。まず、ポインタの const は二種類あります」
『前に付ける const と、 * の後につける const ね』
「そう。まず、 CData クラスは、以下のようになっているとします」

// Data.h

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

『メンバ変数が public なのね』
「さて、次に const ポインタの使用例。まずは前に付ける const から」


int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    // CData クラスの変数を宣言します。
    CData cData;
    // const ポインタにアドレスを渡します。
    const CData *pcData = &cData;
    // すると、メンバ変数に値をセットできません。
    pcData->m_iData = 100;
    // コンパイルエラー：
    // error C2166: 左辺値は const オブジェクトに指定されています。

    // 取り出すことはできます。
    int i = pcData->m_iData;

    return 0;
}

「このように、【const 型 *ポインタ変数名】とすると、その変数のメンバ
変数に値をセットすることができなくなります」
『書き換え不可になるわけね』
「 const ポインタと言ったら、このポインタのことを意味すると考えてく
ださい」
『後ろに付ける const ポインタは、 const ポインタじゃない？』
「うん、実際にはほとんど使わないからね……後ろに付ける const は、
ポインタ内のアドレスを書き換えることはできなくなるけれど、メンバ変数
の値は書き換えられます」

int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    // CData クラスの変数を宣言します。
    CData cData;
    // ポインタにアドレスを渡します。
    CData *const pcData = &cData;
    // すると、アドレス値を変えることはできません。
    pcData = NULL;
    // コンパイルエラー：
    // error C2166: 左辺値は const オブジェクトに指定されています。

    // メンバ変数に値をセットすることはできます。
    pcData->m_iData = 100;

    return 0;
}

「このように、アドレスそのものは変えられなくなるけど、メンバ変数は変
えられます」
『こっちの方がやっぱり用途少ないよね……』
「だね。両方同時に使うこともできるから、どっちを使うかって感じでもな
いかな」
『そか、困ったら両方使えばいいんだ』
「もうひとつ、参照について。参照の場合は、前に付ける const だけにな
ります」

int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    // CData クラスの変数を宣言します。
    CData cData;
    // const 参照を作ります。
    const CData &rcData = cData;
    // すると、メンバ変数に値をセットできません。
    rcData.m_iData = 100;
    // コンパイルエラー：
    // error C2166: 左辺値は const オブジェクトに指定されています。

    // 取り出すことはできます。
    int i = rcData.m_iData;

    return 0;
}

「 const 参照は、 const ポインタと同じく、メンバ変数に値をセットでき
ません。取り出すことはできます」
『 後ろに付ける const は……そか、参照はあとで参照先変数変えられない
から、元々 const ってことなんだね』
「そういうこと。だから、ポインタにはある、後ろに付ける const は、参照
にはないんです」
『ん、りょーかい』
「さて、ここからが本題。まず、前回説明した、ポインタを使用する
メリットについて」

・変数の複製を作らずに渡す
・引数経由で値を返す
・ポリモーフィズム

「このうち、【変数の複製を作らずに渡す】だけしたい場合、つまり
【引数経由で値を返す】をしたくない場合」
『引数を const にする！』
「ことになります。そのため、引数を const ポインタや const 参照にする
必要が出てきます。で」
『で？』
「先ほどの例ではメンバ変数に値をセットする場合を見てみました。ですが
実際にはメンバ変数は private なので、こういったことはしません」
『だよね、 SetData() とかの、 setter でセットするんだから』
「このメンバ関数経由で変えることができてしまったら、何の意味もないわ
けです。そこで、【 const メンバ関数】というものを使います」
『ここで出てくるわけね』
「たとえば、 読み出し専用の getter メソッドに使用します」

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

「このように、メンバ関数の () の後ろに const を付けると、その
メンバ関数が const メンバ関数になります」
『なるとどうなるの？』
「まず、 const メンバ関数からメンバ変数の値を変えることができなくな
ります」

// m_iData の getter 。
int CData::GetData() const
{
    m_iData = 100;
    // コンパイルエラー：
    // error C2166: 左辺値は const オブジェクトに指定されています。

    return m_iData;
}

『お、ホントだ』
「これが、 const メンバ関数の一番基本的な機能。でも、ここからが複雑
なんです……ふふふ」
『ふふふ！？』

/*
    Preview Next Story!
*/
『なにがふふふなのー？』
「……ここからは本当に大変だよ？」
『何驚かせるようなこと言って』
「 const メンバ関数の恐ろしさは……」
『恐ろしさは……？（ごくっ）』
「というわけで次回」
＜ Version 16.09 const メンバ関数が呼べる・呼ばれる関数 ＞
『につづく！』
「……今から引き返してもいいんだよ？」
『いいの？　じゃあ引き返す』
「あ待ってごめん」


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

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

