////////////////////////////////////////////////////////////////////
…━ProxSystemDesign━━━━━━━━━━━━━━━━…

　BLOGの設置、データベース、高機能ショッピングカート
　設置で悩んでいませんか？

　安心のサポートで、月々10,290円。
　　専用レンタルサーバー『E-server』
　　　http://af1.mag2.com/m/af/0000008658/001/s00000001996001/008

…━━━━━━━━━━━━━━━━━━━━━━━━━…
////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


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

    送信日： 2006/04/24(Mon) No.354
    配信数： 1779
    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

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

2006/04/24 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
15.11 DLL の仕組み
15.12 API も DLL ！
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


2006/04/24 (Mon)
　ほとはー外伝３はお休み。
　代わりに数ページ、細かい修正を行いました。
[ 三人合体ホットハーブ 外伝３ 【ワタシ の キロク】 ]
http://www.kab-studio.biz/Comic/HotHerbA3/index.html


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

2006/04/16 (Sun)
　９時起き。午前中はアニメ観て以上。午後は寝まくり。夕方にほとはー
外伝３描き。来週はお休みするかも。そして健康に良くない。

2006/04/17 (Mon)
　今日から木曜までは演習三昧。サーブレット関係なら簡単にできるのに、
簡単なデータクラスが作れなかったり。これが最初の生徒だから色々考え
る？　帰ってからはぐだー。

2006/04/18 (Tue)
　今日は全コマ演習。なんとか差を詰めないと。帰りに御徒町を回ったり。
帰ってからはぐだー。寝れてない？

2006/04/19 (Wed)
　演習２日目。みんな何気に優秀な気が。ちょっと気を抜きすぎ？帰りに
秋葉原へ。MOTHER3は届いておらず。

2006/04/20 (Thu)
　昨日の演習の続きとUMLの講義。昨日に引き続き新宿で本探し。テキスト
の善し悪し。ちゃんとしたコンテンツ作れば天下取れるはず。MOTHER3来て
たので１時間ほど。そして心構え。

2006/04/21 (Fri)
　Javadocまわりとデータベース関係。セットアップに手間取った……。
５コマ目に補講。今日で３週目、体力的にはすげーヤバい。回復しても
良さそうなのに。

2006/04/22 (Sat)
　８時半起き。今日はMOTHER3して寝て以上。まだ頭痛が……。


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

2006/04/16 (Sun)
http://d.hatena.ne.jp/kab_studio/20060416
おきたー。
[KAB-studio]ぷらとわ追加。
[KAB-studio][ほとはー]ほとはー外伝３ P.59
[アニメ]おねがいマイメロディ〜くるくるシャッフル！〜 
　第3話「オンプがいっぱいとれたらイイナ！」
[アニメ]「牙」 第3話「力を持つ者たち」
[アニメ]ひまわりっ！ 第2話「決して惚れてはならぬのです」
[アニメ]ひぐらしのなく頃に 第2話「鬼隠し編　其ノ弐　隠しごと」
[アニメ]西の善き魔女 第2話「子ヤギたちの行方」

2006/04/17 (Mon)
http://d.hatena.ne.jp/kab_studio/20060417
起きた……。
帰宅。
[アニメ]ARIA The NATURAL 第3話「その　流星群の夜に…」
[アニメ]Fate/stay night 第15話「十二の試練」
[アニメ]うたわれるもの 第2話「荒ぶる森の王」

2006/04/18 (Tue)
http://d.hatena.ne.jp/kab_studio/20060418
起きたわけでして。
帰宅。
[アニメ]涼宮ハルヒの憂鬱 第3話「涼宮ハルヒの憂鬱II」

2006/04/19 (Wed)
http://d.hatena.ne.jp/kab_studio/20060419
起きた。
とりあえず帰宅。
[買]この日メロブで買ってきたもの。
[アニメ]桜蘭高校ホスト部 第3話「身体検査に御用心」
[アニメ]ブラックラグーン 第2話「Mangrove Heaven」
[きらら]まんがタイムきららMAX 2006年6月号

2006/04/20 (Thu)
http://d.hatena.ne.jp/kab_studio/20060420
起きたー。
帰ってきたー。
[MOTHER3]購入&ファーストインプレッション
[アニメ]いぬかみっ！ 第3話「水着でたいじっ！」
[アニメ]ゼーガペイン 第3話「デフテラ領域」

2006/04/21 (Fri)
http://d.hatena.ne.jp/kab_studio/20060421
起き。
帰ってきた！
[MOTHER3]第一章完了
[アニメ]かりん 第22話「迷い子みたいに　恥ずかしい」
[アニメ]ザ・サード 〜蒼い瞳の少女〜 第2話「慌しい一夜」

2006/04/22 (Sat)
http://d.hatena.ne.jp/kab_studio/20060422
起きたー。
[アニメ]彩雲国物語 第3話「能ある鷹は爪を隠す」
[アニメ]ふしぎ星の☆ふたご姫 Gyu! 
　第4話「いきなり退学〜!?☆初めての授業」
[アニメ]ウィッチブレイド 第3話「坑」
[アニメ]火曜深夜分と木曜深夜分を追加。 
[MOTHER3]３章終了。
[きらら]MAX感想追加。
富士山研修
livedoor Readerを使ってみた。


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

■追加・更新単語

（今週の追加はありません）


////////////////////////////////////////////////////////////////////
…━ProxSystemDesign━━━━━━━━━━━━━━━━…

　BLOGの設置、データベース、高機能ショッピングカート
　設置で悩んでいませんか？

　安心のサポートで、月々10,290円。
　　専用レンタルサーバー『E-server』
　　　http://af1.mag2.com/m/af/0000008658/001/s00000001996001/008

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

　Version 16.27
static と this

「前回は static メンバ関数について説明しました」
『 static メンバ変数と static メンバ関数、どっちもクラスの変数を作ら
なくても使うことができるんだよね』
「そう、それが普通のメンバ変数、メンバ関数との違い」
『でも、 static な方から普通の方って使えないんだよね』

・static メンバ関数→→→×→→→  普通のメンバ変数、 普通のメンバ関数
・ 普通のメンバ関数→→→○→→→ static メンバ変数、static メンバ関数

『これがちょっと不便だよね』
「でも、ちゃんとした理由があるんです。なぜこうなるのか、まず仕組みで
考えてみます」
『はーい』
「まず、普通のメンバ関数は置いといて、普通のメンバ変数に絞って考えた
方が分かりやすいかな」
『普通なメンバ変数、つまり非 static メンバ変数ってことね』
「普通のメンバ変数やメンバ関数を使うためには、クラスの変数が必要で
す。特にメンバ変数の方は、クラスの変数の中に置かれる形になるから」
『 Version 16.02 ( No.329 ) で言ってたね、メンバ変数がそのクラスの
変数の中身になる、ってことなんだよね』
「そういうこと。だから、普通のメンバ変数はそのクラスの変数が必要不可
欠です。さて、この普通のメンバ変数を、 static メンバ関数から使用する
場合を考えてみます」
『 static メンバ関数は、クラスの変数がなくても呼び出せる……そか、 
static メンバ関数から普通のメンバ変数にアクセスするためには、その
メンバ変数が入っている、クラスの変数が必要、でも』
「 static メンバ関数を呼び出す時にははクラスの変数がないわけだから」
『そのメンバ変数が入ってるクラスの変数が分からない！　ってこと？』
「そういうこと。 static メンバ関数は、クラスの変数とは関係なく呼び出
せるわけだから、そのクラスの変数に入っているメンバ変数とも関係ない
わけです」
『なるほど……んー、でももうちょっと欲しいかも、なんかが』
「じゃあ別の視点から考えてみようか。 this ポインタって憶えてる？」
『 Version 16.03 ( No.330 ) で教わったね、自分の変数のポインタで、隠
された引数……あ！！　そっか、 static メンバ関数って、 this ポインタ
がないんだ！』
「そう！　 static メンバ関数は、クラスの変数を持たずに呼び出すから、
普通のメンバ関数が【呼び出したときに後ろで渡される、クラスの変数の
ポインタ】つまり this ポインタが渡されないんです」
『メンバ関数からメンバ変数使う時は、 this->m_iData みたいに this 
ポインタ使うのと同じ、ってことだったから、その this ポインタがない 
static メンバ関数は、メンバ変数にアクセスできない！』
「というわけです。これをプログラムで確認してみようか。 CData クラス
に、普通のメンバ変数 m_iNonStaticMember 、普通のメンバ関数
NonStaticMember() 、 static メンバ関数 StaticMember() を持たせます」

// Data.h

// CDataクラス。
class CData
{
public:
    // 非 static メンバ変数。
    int m_iNonStaticMember;

    // static メンバ関数。
    static void StaticMember();
    // 非 static メンバ関数。
    void NonStaticMember();
};


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

#include "Data.h"

// static メンバ関数。
void CData::StaticMember()
{
    // this->m_iNonStaticMember = 100;
}

// 非 static メンバ関数。
void CData::NonStaticMember()
{
    this->m_iNonStaticMember = 100;
}


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

#include "Data.h"

int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    // static メンバ関数を使用します。
    CData::StaticMember();
    // 非 static メンバ関数を使用します。
    CData cData;
    cData.NonStaticMember();

    return 0;
}

「 NonStaticMember() メンバ関数は、 cData のアドレスを this ポインタ
として受け取ります」

      →→→→→→→→→→↓
      ↑                  ↓
    cData.NonStaticMember(↓);
                          ↓
                          →↓
                            ↓
void CData::NonStaticMember(↓)
{                           ↓
       ←←←←←←←←←←←
      ↓
    this->m_iNonStaticMember = 100; 
}

「 NonStaticMember() メンバ関数は、 cData のアドレスを this ポインタ
として受け取るため、 this ポインタを通して普通のメンバ変数やメンバ関数
を使うことができるわけです」
『でも、 StaticMember() メンバ関数は、この this ポインタを受け取らな
い』
「クラスの変数を作っていないから、渡しようがないんです」

    // static メンバ関数を使用します。
    CData::StaticMember();

// static メンバ関数。
void CData::StaticMember()
{
    // this ポインタがないから非 static メンバ変数には
    // アクセスできません。
    // this->m_iNonStaticMember = 100;
}

「 StaticMember() メンバ関数を呼び出す時に CData クラスの変数を必要
としないので、そのアドレスを持つ this ポインタも渡されないわけです」
『普通のメンバ変数を使うためには this ポインタが必要だから、アクセス
できないってわけね』
「そういうこと」
『……んー、普通のメンバ変数はこれでわかったけど、普通のメンバ関数を 
static メンバ関数から呼び出せないのってなんで？』
「同じように考えればわかると思うよ。普通のメンバ関数を呼び出すときに
裏で渡されるのは？」
『クラスの変数のアドレスが入った this ポインタ』
「それを static メンバ関数は」
『持ってない！』
「そういうこと」

// static メンバ関数。
void CData::StaticMember()
{
    // 非 static メンバ関数を呼びたいけど呼べません。
    // 渡さなきゃいけない this ポインタがないから。
    // NonStaticMember( this );
}

「普通のメンバ関数は、中で普通のメンバ変数にアクセスするために this 
ポインタが必要になるので、必ず渡す必要があります」
『でも static メンバ関数はそれを持ってない、渡せない、だから呼び出せ
ない』
「そういうこと。こんなふうに、 this を中心に考えると分かりやすいか
な」
『うん、なんとなく分かったかも』
「もう一度まとめると、以下のようになります」

・static メンバ関数→→→×→→→  普通のメンバ変数、 普通のメンバ関数
・ 普通のメンバ関数→→→○→→→ static メンバ変数、static メンバ関数

『つまり static メンバ関数から普通のメンバは使えない、 this ポインタ
がないからアクセスできないってわけね』
「そういうこと」
『でもさ、それってすごく不便じゃない？　普通にクラスの変数作って普通
にメンバ関数呼び出せばいいんだから、 static メンバ関数とか作る意味な
いじゃん』
「でも実は使い道があるんです。というわけで次回に続く！」

/*
    Preview Next Story!
*/
『不便！　使いづらい！　不便！』
「でもWin32 APIを使う時には便利なんです」
『 static メンバ変数が？』
「ううん、 static メンバ関数が」
『というわけで次回』
＜ Version 16.28 関数の代わりに static メンバ関数 ＞
「につづく！」
『 static メンバ変数は？』
「えーっと……」


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

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

