-----------------------------------------------------------------------
他の講座ではホームページのつくり方とか
簡単に稼げるとか言うだけでも、
この講座は耳に痛いことも言ってくれる本気モードの講座でした

　　　　─日本初、成果保証型アフィリエイト通信教育
　　　　　月10万円稼げなかったら、受講期間を無料で延長できます　─
          http://af1.mag2.com/m/af/0000008658/001/s00000002726001/018

------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


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

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

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

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


2005/12/12 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
14.08 セマフォを使ってみる！
14.09 セマフォで排他処理
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


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

2005/12/04 (Sun)
　疲れた。朝から某専門学校で授業受けたり。座るの苦手。帰ってからはい
つもの更新とかカレーとか。

2005/12/05 (Mon)
　半分駄目な日。カブカテキョとかお絵描きとか。ストックがもうない。
そして徹夜対策。

2005/12/06 (Tue)
　７時間睡眠。 JavaA2Z にぷらとわ、お絵描き。夜にヨドバシでインクと
か購入。歩いたんで疲れた。

2005/12/07 (Wed)
　休日モード。洗濯、家賃振込、ビデオ焼きにバックアップ。 JavaA2Z の
単語追加して以上。久しぶりに調子良くない……。

2005/12/08 (Thu)
　カブカテキョとお絵描き。特殊なパース好き。夜にまたカレー。そして
許さん！

2005/12/09 (Fri)
　午前中はぐだー、午後はお絵描き。そのあとはダウン。絵はいい感じに
仕上がったなぁ。描き方がちょっと分かってきたかも。

2005/12/10 (Sat)
　ほとんど何もできない日。昨日速攻寝るも朝は……。カブカテキョと
散歩と JavaA2Z 。明日は新宿へ。筋トレはいかん……。


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

2005/12/04 (Sun)
http://d.hatena.ne.jp/kab_studio/20051204
寒
帰ってきた。
[ほとはー]ほとはー外伝３ P.44
[Prog]ぷらとわ追加。
[アニメ]おねがいマイメロディ 第36話「地球が救えたらイイナ！」
[アニメ]ゾイドジェネシス 第35話「奇襲」
[アニメ]魔法戦隊マジレンジャー 
　第40話「蛇女の庭〜マジーネ・ルルド〜」
[食][自炊]カレーログ
[JavaA2Z]文字化け対応。

2005/12/05 (Mon)
http://d.hatena.ne.jp/kab_studio/20051205
起きたー。
[絵]水着(2)
[JavaA2Z]単語追加。
[アニメ]交響詩篇エウレカセブン 第33話「パシフィック・ステイト」
[アニメ]銀盤カレイドスコープ 第9話「トライアングル・ラブ」
[アニメ]Canvas2 第9話「瑠璃色のセンチメンタル」
[アニメ]はっぴぃセブン 第10話「掟破りのらっきぃスリィ！」
[Machician]第１２話 たったひとつの確かな理由 (1) [△ ▽]

2005/12/06 (Tue)
http://d.hatena.ne.jp/kab_studio/20051206
起きた……。
[アニメ]Canvas2 第10話「追憶のスノーホワイト」
[アニメ]ガン×ソード 第23話「みんなのうた」
[JavaA2Z]単語追加。
[絵][Machician設定]イヴァンディ
家賃滞納（爆）
[Machician]第１２話 たったひとつの確かな理由 (2) [△ ▽]

2005/12/07 (Wed)
http://d.hatena.ne.jp/kab_studio/20051207
起きた。
[JavaA2Z]単語追加。
[Machician]第１２話 たったひとつの確かな理由 (3) [△ ▽]

2005/12/08 (Thu)
http://d.hatena.ne.jp/kab_studio/20051208
起きたよ。
[アニメ]灼眼のシャナ 第10話「絡まる想い」
[アニメ]ARIA 第10話「その ほかほかな休日は…」
[アニメ]IGPX 第10話「対決」
[アニメ]雲のむこう、約束の場所
[絵]絶対領域
[JavaA2Z]単語追加。
[Machician]第１２話 たったひとつの確かな理由 (4) [△ ▽]

2005/12/09 (Fri)
http://d.hatena.ne.jp/kab_studio/20051209
起きたぜー。
[アニメ]かりん 第6話「母さん元気で恥ずかしい」
[アニメ]SHUFFLE! 第21話「気持ちの行方」
[アニメ]舞-乙HiME 第10話「それが乙女の一大事」
[アニメ]SoltyRei 第10話「トレジャー＆レスキュー」
[アニメ]ノエイン 第9話「トキヲコエテ」
[アニメ]魔法少女リリカルなのはA’s 第10話「運命」
[絵]絶対領域(2)
[Machician]第１２話 たったひとつの確かな理由 (5) [△]
 
2005/12/10 (Sat)
http://d.hatena.ne.jp/kab_studio/20051210
起きました。
[アニメ]ふしぎ星の☆ふたご姫 
　第37話「7つの宝を探せ☆グレイス・ストーンの秘密」
[きらら]まんがタイムきらら 1月号
教えるときの心がけ
[JavaA2Z]単語追加。
[アニメ]リーンの翼 第1話「招かれざるもの」


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

■追加・更新単語

マージ
リネーム
アーカイブ
構造体
struct
Frame
JFrame
AWT
有理数
無理数
メゾット
Graphics
Node
メゾッド
Jakarta Commons
Commons
未定義
StackOverflowError
スタック領域
無限ループ
永久ループ


////////////////////////////////////////////////////////////////////
-----------------------------------------------------------------------
他の講座ではホームページのつくり方とか
簡単に稼げるとか言うだけでも、
この講座は耳に痛いことも言ってくれる本気モードの講座でした

　　　　─日本初、成果保証型アフィリエイト通信教育
　　　　　月10万円稼げなかったら、受講期間を無料で延長できます　─
          http://af1.mag2.com/m/af/0000008658/001/s00000002726001/018

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

　Version 16.09
const メンバ関数が呼べる・呼ばれる関数

「今回は const メンバ関数の続きです」
『世にも恐ろしい const メンバ関数の話ね』
「まず、 const メンバ関数の最も基本的な機能は、メンバ変数にアクセス
できなくなるということです」

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

    return m_iData;
}

『全部のメンバ変数が一時的に const になる、って感じ？』
「というよりは、 this ポインタが const になるって感じかな」
「 Version 16.03 ( No.330 ) の this ポインタ……そか、それが引数で渡
される時に、 const CData * になる、ってイメージすればいいわけね」
『そういうこと。実際、 this ポインタ経由でもコンパイルエラーになるか
ら』

    this->m_iData = 100;
    // コンパイルエラー：
    // error C2166: 左辺値は const オブジェクトに指定されています。

「次に、非 const メンバ関数は、 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;
    // すると、非 const メンバ関数を呼び出せません。
    pcData->SetData( 100 );
    // コンパイルエラー：
    // error C2662: 
    // 'SetData' : 'const class CData' から 'class CData &' へ 
    // 'this' ポインタを変換できません。
    // 変換で修飾子が失われます。

    // const メンバ関数は呼び出せます。
    int i = pcData->GetData();

    return 0;
}

「まず、 const ポインタを作り、対象の変数のアドレスを入れます」

    // const ポインタを作ります。
    const CData *pcData = &cData;

「すると、このポインタ経由で、非 const メンバ関数を呼び出すことはで
きません」

    // すると、非 const メンバ関数を呼び出せません。
    pcData->SetData( 100 );
    // コンパイルエラー：
    // error C2662: 
    // 'SetData' : 'const class CData' から 'class CData &' へ 
    // 'this' ポインタを変換できません。
    // 変換で修飾子が失われます。

「もしこれが呼べてしまうと、この非 const メンバ関数経由でメンバ変数
を書き換えられてしまうからです」
『つまり、前回のメンバ変数が書き換えられないのと同じ、ってことね』
「そういうこと。つまり、 const メンバ関数には以下の2つの機能があると
いうことです」

・メンバ変数を書き換えられなくする
・const ポインタや const 参照から呼べるようにする

『あれ？　なんとなく違和感が……自分でもよく分からないんだけど……』
「たぶん、これが問題なんだと思うよ」

・普通のメンバ関数（非 const メンバ関数）は、 const ポインタや
　const 参照からは呼び出せない

『……普通のメンバ関数が呼び出せない！？』
「そう。普通のメンバ関数、つまり const じゃないメンバ関数は、 const 
ポインタや const 参照からは呼び出せません。ということは」

・const メンバ関数を使ってないクラスは、 const ポインタや const 参照
　に渡せない

「ということです」
『ええっ！？　じゃあ、引数に const ポインタを使ったりできないってこ
と！？』
「そういうこと」

void Set100( const CData *p_pcData )
{
    // セット……できません。
    p_pcData->SetData( 100 );
    // コンパイルエラー：
    // error C2662: 
    // 'SetData' : 'const class CData' から 'class CData &' へ 
    // 'this' ポインタを変換できません。
    // 変換で修飾子が失われます。
}

「このように、引数に const ポインタを使うと、そのポインタから
非 const メンバ関数は呼び出せません」
『だよね』
「ここで呼んでいるのは SetData() だからある意味当然だけど、 GetData()
だって、 const を付けなかったら呼べないでしょ」
『う”、そっか、書き換えないって分かっていても、 const メンバ関数じゃ
なくちゃ、 const ポインタからは呼び出せない……』
「もし火美ちゃんが一からクラスを作る場合、とりあえずメンバ関数に const 
を付けなかったら」
『 const ポインタからメンバ関数呼べない、ってゆーか const ポインタや 
const 参照が使えない、ってことになるのかな』
「そうなるね。でも」
『そしたらメンバ関数経由で間違ってメンバ変数を書き換える可能性がある
……』
「つまり」

・引数にポインタや参照を使いたいけどメンバ変数の書き換えはしたくない
→const ポインタや const 参照を使う
→const メンバ関数でないと呼び出せない
→クラスの各メンバ関数が適切に const 、非 const でなければならない
→それは大変だし難しい
→const ポインタや const 参照を使うのを諦める

「っていうことになっちゃうんです」
『げげ……ってほどでもないんじゃない？　だって、メンバ変数を書き換え
るメンバ関数以外は const にすればいいんじゃない』
「それはどうかな。今は簡単なメンバ関数だけだけど、複雑なメンバ関数の
場合、どこかで何かしらメンバ変数を書き換えるものでしょ」
『確かに、全然書き換えないメンバ関数って少ないかも……』
「で、ちょっとでも書き換えるメンバ関数は const メンバ関数にできない
から、 const ポインタや const 参照から呼び出せなくなります」
『げ！　そか、そうやって const じゃないメンバ関数を増やすと、呼び出
せるメンバ関数がどんどん減ってっちゃうんだ』
「さらに、 const メンバ関数には、次のようなルールもあるんです」

・const メンバ関数から非 const メンバ関数は呼び出せない

「つまり、以下のようなことをするとコンパイルエラーになります」

// m_iData の getter 。
int CData::GetData() const
{
    SetData( 100 );
    // コンパイルエラー：
    // error C2662: 
    // 'SetData' : 'const class CData' から 'class CData &' へ 
    // 'this' ポインタを変換できません。
    // 変換で修飾子が失われます。

    return m_iData;
}

「このように、 const メンバ関数から非 const メンバ関数は呼べません。
呼べたら、 const メンバ関数がメンバ変数を書き換えられることになっ
ちゃうからね」
『ええっ！　そか、これ呼べたら const メンバ関数の意味ないもんね……
中から中でも、こういう制約があるんだ』
「ということは、流れとしては」

・　 const メンバ関数 →非 const メンバ関数
・非 const メンバ関数 →非 const メンバ関数

「この二通りの流れしかできないということになります」
『つまり逆の』

・非 const メンバ関数 →　 const メンバ関数

『はないってこと……』
「もしクラス内で複雑にメンバ関数を呼び合っている場合、この 
const メンバ関数の流れを解決する必要があります。たとえば」

・メンバ関数A→メンバ関数B→メンバ関数C

「と呼んでいる場合、もし全てのメンバ関数でメンバ変数の書き換えをして
いないのなら」
『全部 const メンバ関数にできる！』

・const メンバ関数A→const メンバ関数B→const メンバ関数C

「ところが、仕様変更でメンバ関数Cではあるメンバ変数を書き換える必要
が出たとしたら？」
『え……メンバ関数Cは非 const メンバ関数になるね』

・const メンバ関数A→const メンバ関数B×メンバ関数C

『うあぁ、メンバ関数Bから呼べないよ！！　ってことはメンバ関数Bも非
 const に……そしたらメンバ関数Aも！？』
「そうなると、メンバ関数Aは const ポインタや const 参照から呼び出せ
なくなります」
『うがーっ、何それわけわかんねー！！　やめ！　const ポインタとか
const メンバ関数とかもう使わねー！！』

/*
    Preview Next Story!
*/
『はぁはぁ……まさか const メンバ関数がここまで手強いとわっ！』
「思わず言っちゃうでしょ」
『使いたくねー！！』
「さて、次回はコンストラクタについて」
『へ？』
「というわけで次回」
＜ Version 16.10 コンストラクタの復習 ＞
『につづく！』
「気持ちを切り替えてがんばろう！」
『お、おー……？』


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

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

