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

    KAB-studio.h


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

    送信日： 2005/10/24(Mon) No.329
    配信数： 1868
    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

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

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

2005/10/24 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
13.25 日時の計算
13.26 手作業撲滅！
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


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

2005/10/16 (Sun)
　アニメ観つつ月曜更新分を更新したら、夜までずっとカブカテキョ。疲れ
た……。 PHP 、いいなぁ。導入が簡単だし、言語仕様も面白い。 C言語と 
Perl と JSP を組み合わせたような。これと Ajax を組み合わせたら最高か
も。そして HDD チェッカー。

2005/10/17 (Mon)
　昨日は２時に寝て今朝は９時起き。午前中はなにもできず、午後に
カブカテキョ。そのあとも何もできずカレー作ってうまー。カレーレシピ。
カレー食べながらプレーオフ。無茶苦茶面白かった。

2005/10/18 (Tue)
　うだー。カブカテキョと JavaA2Z で以上。作業効率が悪いパターン。
優先順位を気にしないようにしないと。月火と無駄にしたなぁ。

2005/10/19 (Wed)
　横浜行ってコミックスとか買ってきた。あとはカブカテキョ書いて以上。
今日はお休みの日。横浜まで歩いてきたんで足痛い。

2005/10/20 (Thu)
　一日中眠かった。筋肉痛もパワーアップ。お昼過ぎまでに某専門学校の
テキスト書きの推敲。午後はカブカテキョ、夜は JavaA2Z 。来週分の準備
はできてるからそろそろ「Ajaxで」を……。

2005/10/21 (Fri)
　午前中はカブカテキョ、午後に JavaA2Z 。夕方から夜までうだーっとし
て、そのあとカブカテキョ。最近は夜中にはかどるかも。昨日も Machician
を。来週月火とお休みします。来週は忙しいかも。

2005/10/22 (Sat)
　午前５時半カブカテキョして眠かった。朝起きたらサーバーがダウン……
してないか。午後に JavaA2Z 、そのあと昼寝。今日もあまりできなかった
……。


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

2005/10/16 (Sun)
http://d.hatena.ne.jp/kab_studio/20051016
起きた。
[アニメ]おねがいマイメロディ 第29話「マドンナになれたらイイナ！」
[アニメ]ゾイドジェネシス 第28話「伝説」
[アニメ]魔法戦隊マジレンジャー 
　第33話「インフェルシアへ〜マージ・ゴル・マジカ〜」
[アニメ]交響詩篇エウレカセブン 第25話「モーニング・グローリー」
[ほとはー]ほとはー外伝３ P.38
[Prog]ぷらとわ追加。
地震。
疲れた……。

2005/10/17 (Mon)
http://d.hatena.ne.jp/kab_studio/20051017
起きた！
[アニメ]はっぴぃセブン 第3話「笑う門には福来たる」
[アニメ]銀盤カレイドスコープ 第2話「キーワードはトマト」
パ・リーグ プレーオフ、決戦！

2005/10/18 (Tue)
http://d.hatena.ne.jp/kab_studio/20051018
起きた。
[アニメ]Canvas2 第3話「悪戯なカナリアイエロー」
[アニメ]ガン×ソード 第16話「輝くは電流火花」
[アニメ]絶対少年 第21話「いい子でいることの意味」
[アニメ]ふしぎ星の☆ふたご姫 第29話「元気を出して☆アルテッサ」
[アニメ]capeta 第3話「初めてのサーキット！」
[JavaA2Z]単語追加。

2005/10/19 (Wed)
http://d.hatena.ne.jp/kab_studio/20051019
起きましたよー。
横浜行ってくる。
帰ってきた。
[アニメ]ガンパレード・オーケストラ 第3話「遠すぎた橋」
[アニメ]ラムネセブン 第1話「ヤドカリと麦わら帽子」
また地震。
[買]お昼に買ってきたもの。

2005/10/20 (Thu)
http://d.hatena.ne.jp/kab_studio/20051020
起きたよー。
[アニメ]フルメタル・パニック!The Second Raid 第13話「つづく日々」(終)
[アニメ]灼眼のシャナ 第3話「トーチとフレイムヘイズ」
[アニメ]ARIA 第3話「その 透明な少女と…」
[アニメ]IGPX 第3話「黒い卵」
[買]まんがタイムきららMAX 12月号
EnterTrainer：心拍数が下がるとテレビを消すトレーニング監視機
W-ZERO3
[JavaA2Z]単語追加。

2005/10/21 (Fri)
http://d.hatena.ne.jp/kab_studio/20051021
起きたのですよ。
[アニメ]SHUFFLE! 第14話「リコリス」
[アニメ]ノエイン 第2話「イエデ」
[アニメ]ローゼンメイデン・トロイメント 第1話「薔薇水晶」
[アニメ]SoltyRei 第3話「青の少女」
[アニメ]魔法少女リリカルなのはA’s 
　第3話「再会、そしてお引っ越しなの！」
[アニメ]舞-乙HiME 第3話「はじめてのケ・イ・ケ・ン」
AmazonにTECH GIANが。
[JavaA2Z]単語追加。

2005/10/22 (Sat)
http://d.hatena.ne.jp/kab_studio/20051022
起きてます。
サーバーダウン！？
[アニメ]ふしぎ星の☆ふたご姫 第30話「しずくの国☆ニセふたご姫!?」
[アニメ]絶対少年 第22話「消えたものと生まれるもの」
[JavaA2Z]単語追加。
日本の即席ラーメン「マルちゃん」　メキシコで国家的人気


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

■追加・更新単語

javax
start
描画
再描画
staticコンテキスト
静的コンテキスト
静的初期化子
JDK
全角ハイフン
matches
自然数
符号
unsigned
環境変数
JAVA_HOME
システムプロパティ
ファイル区切り文字
辞書
C言語
C++言語


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

　Version 16.02
メンバ変数とメンバ関数

「前回は簡単にクラスを作ってみました」
『あとメンバ変数もね』
「今回はメンバ変数のおさらいと、さらにメンバ関数を追加します。
メンバ関数は、クラスが持つ関数です」
『メンバ変数の関数版ね』
「それではメンバ変数とメンバ関数を作ってみます。まず、ヘッダーファイル
の方に以下のようにメンバ変数とメンバ関数を追加します」

// Data.h

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

    // メンバ関数。
    void Output();
};

「メンバ変数の作り方は、普通のローカル変数と同じ。〈型 メンバ変数名〉
で宣言できます」
『メンバ関数は〈{}〉がないから、関数の宣言部と同じね』
「そう、こちらも基本的には普通の関数の宣言と同じ」
『ってことは、関数の定義も書かなきゃいけないんだよね』
「そういうこと。というわけで、次に Data.cpp 、つまりソースファイルの
方を作ります」
『メニューの【ファイル】-【新規作成】選んで、【新規作成】ダイアログ
で【ファイル】
ページの【C++ ソースファイル】を選んで、【ファイル名】を Data.cpp に
するんだよね』
「そうそう」
『もう何度もやってるからいい加減できないとね。ファイルにはどう書く
の？』
「こんな感じ」

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

#include "Data.h"

// CDataクラスのOutput()メンバ関数の定義。
void CData::Output()
{
    // 出力します。
    char pch[256];
    sprintf( pch, "%d\n", m_iValue );
    OutputDebugString( pch );
    // 100
}

「まず、 Data.h をインクルードします」

#include "Data.h"

「そうしないと CData クラスの情報が得られないからね」
『んでそのあとが Output() メンバ関数の定義ね』

// CDataクラスのOutput()メンバ関数の定義。
void CData::Output()
{
    // 出力します。
    char pch[256];
    sprintf( pch, "%d\n", m_iValue );
    OutputDebugString( pch );
    // 100
}

「メンバ関数は〈戻り値の型 クラス名::メンバ関数名( 引数 ){実装}」と
いう形で定義します」
『ようするに、関数の前に〈クラス名::〉を付ければいいわけね』
「そういうこと。これ付けないと、ただの関数になるから注意して」
『そか、そういえばそうだね』
「このメンバ関数の中では、メンバ変数にアクセスすることができます」

    sprintf( pch, "%d\n", m_iValue );

『 m_iValue がそのメンバ変数だよね』
「そう、 Data.h の方にあるメンバ変数。メンバ関数はメンバ変数に普通に
アクセスすることができます」
『外からもアクセスできるし、こうして中、メンバ関数からもアクセスでき
るわけね』
「そういうこと。そして、このメンバ関数も、外から呼び出すことができま
す」

// 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
    )
{
    // CDataクラスの変数を宣言します。
    CData cData;
    // m_iValueに値を入れます。
    cData.m_iValue = 100;
    // メンバ関数を呼び出します。
    cData.Output();

    return 0;
}

「まず、 CData クラスの変数を作ります」

    // CDataクラスの変数を宣言します。
    CData cData;

「メンバ変数には、〈クラス型変数.メンバ変数〉の形でアクセスすること
ができます」

    // m_iValueに値を入れます。
    cData.m_iValue = 100;

「メンバ変数 m_iValue は、 cData 変数の中に入っている変数、というこ
とになります」
『前回言ってたね、メンバ変数は変数の中にある、って』
「そう、だからメンバ変数が増えれば、 cData そのもののサイズも増えま
す。クラス型変数は、メンバ変数によって構成された変数、だから」
『メンバ変数で構成された変数？』
「そう。たとえば、今の状態だと sizeof( CData ) は、中のメンバ変数 
m_iValue のサイズと同じ」
『 4 バイト？』
「になります。 m_iValue がない場合、 sizeof( CData ) は」
『…… 0 バイト？』
「にはさすがにならないんだけど、 1 バイトになります」
『あー、やっぱ減るんだ』
「それよりも、メンバ変数があるときは、メンバ変数のサイズと同じ、
っていう点が重要」
『まさに、メンバ変数がクラスを構成している、ってわけね』
「そういうこと。だから、クラス型変数は、メンバ変数だけで構成されてい
て、それがひとつの変数にくるまれてる、ってイメージかな」
『ちっこい変数に見えていっぱいある、ってことねなんか構造体みたい……
って、確か構造体とクラスって同じなんだっけ』
「 Version 7.07 ( No.127 ) で説明したね。そう、ほとんど同じもの。だ
からクラスでも同じイメージの方が分かりやすいかもね」
『うんうん』
「ただ、構造体が主にメンバ変数だけなのに対して、クラスでは」
『メンバ関数がある！』
「そういうこと。そのメンバ関数は〈クラス型変数.メンバ関数()〉の形で
呼び出すことができます」

    // メンバ関数を呼び出します。
    cData.Output();

「こうすることで CData クラスの Output() メンバ関数を呼び出すことが
できます」
『質問！』
「はい火美ちゃん」
『メンバ関数は、 cData の中に入ってないの？』
「入ってはいません」
『え、そなの？』
「 cData の中にメンバ関数が入っているわけではありません。実際、さっき
説明したように、サイズ的にもそうだし、もし持つとしても……関数を変数の
ように持つ方法は？」
『関数ポインタ？』
「そう、関数ポインタとして持つことになります。関数全体を変数に入れる
ことはできないわけだから」
『あ、そっか。そいやそうだね』
「そういう意味では、 Output() が cData に入っているわけではない、
メンバ関数がクラス型変数に入っているわけではない、というわけです」
『でもさ、だとしたら、 Output() メンバ関数って単独で呼び出せるんじゃ
ない？　でも、クラス型変数使わなきゃ呼び出せないじゃん』

    // クラス型変数を使わずに
    // メンバ関数を呼び出します。
    CData.Output();
    // コンパイルエラー：
    // error C2143: 構文エラー : ';' が '.' の前に必要です。

    CData::Output();
    // コンパイルエラー：
    // 'CData::Output' : 
    // 静的でないメンバ関数の中で呼び出しが正しくありません。

「ほら、クラス型変数変数がないと呼び出せないじゃん」
「そう、それはなぜかというと、メンバ関数はメンバ変数にアクセスするた
めの情報が必要だから」
『メンバ変数にアクセスするための情報？』
「そう、 Output() メンバ関数が cData.m_iValue 変数にアクセスできな
きゃいけないわけだから」
『そのために、クラス型変数経由で呼ばなきゃいけない？』
「というわけで次回に続く！」

/*
    Preview Next Story!
*/
『関数は中に入ってない、でもクラス型変数は必要』
「こういうところも、中の仕組みが解ると難しくないかも」
『その中の仕組みが難しいんだけど』
「そういうときは全体像を」
『以下ループ』
「というわけで次回」
＜ Version 16.03 this ポインタ ＞
『につづく！』
「そうして続けていくのがプログラミングの学習ってことで」
『いや、綺麗にまとめられても』


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

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

