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

ITエンジニア社員募集 -採用者には５万円進呈-
Supported by effect : http://af1.mag2.com/m/af/0000008658/001/s00000003179001/008

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

    KAB-studio.h


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

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

/*                         来週はお休み                           */

　来週、１月２日分の配信はお休みします。毎年恒例の正月休みです。
　盆と正月に休むとちょうど年５０号になるので（爆）。
　ホームページの方もこの頃はお休みします。御了承ください。


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

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


2005/12/26 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
14.12 イベントを使おう！
14.13 イベントを使ってみる！
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


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

2005/12/18 (Sun)
　アニメ観てかぶヘッダーの送信予約して以上。ほとはー外伝３はお休み。
疲れた……明日から６日間お仕事だし。カブカテキョをどうこなしていく
か。今年を振り返る・３月はオフミの月。

2005/12/19 (Mon)
　某所にておしごと。テキスト校正。あっという間に時間が過ぎる。帰って
きたら疲れた。今年を振り返る・４月は駄目な感じ。そしてバトン、そして
アダルト？

2005/12/20 (Tue)
　早起きモード。引き続きお仕事。帰ってから何もする気が起きない。
今年を振り返る・５月はあまかい作り。

2005/12/21 (Wed)
　引き続きお仕事。どう時間作ってたんだろう。今年を振り返る・６月は
波瀾万丈の月。

2005/12/22 (Thu)
　引き続きお仕事。他の案件の話が……。帰ってからはまたぐだーっと。
今年を振り返る・７月はかぶスタ１０周年、カブカテキョ開始。

2005/12/23 (Fri)
　お仕事最終日。目が痛くなる……。急な仕事だったけど悪くなかったか
も。何ヶ月かおきにこういう仕事取りたいな。今年を振り返る・８月は
すごく忙しく……夏コミも。

2005/12/24 (Sat)
　某専門学校で授業見学。おしごと関係の整理。来週は面接が。帰ってから
はぐだーっと。今年を振り返る・９月は駄目な月。


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

2005/12/18 (Sun)
http://d.hatena.ne.jp/kab_studio/20051218
起きたー。
[アニメ]ふしぎ星の☆ふたご姫 第38話「風の谷の秘密☆ソフィーの宝物」
[アニメ]おねがいマイメロディ 第38話「賞がとれたらイイナ！」
[アニメ]ゾイドジェネシス 第37話「襲来」
[アニメ]魔法戦隊マジレンジャー 
　第42話「対決！二極神〜ゴール・ルーマ・ゴル・ゴンガ〜」
[アニメ]交響詩篇エウレカセブン 第35話「アストラル・アパッチ」
[アニメ]蟲師 第9話「重い実」
[アニメ]銀盤カレイドスコープ 第11話「キス・アンド・クライ」
[アニメ]ノエイン 第10話「アラシノヨル」
[Prog]ぷらとわ追加。
[ほとはー]ほとはー外伝３はお休みします。

2005/12/19 (Mon)
http://d.hatena.ne.jp/kab_studio/20051219
起きてます。
帰宅〜。
印象バトン
[きらら]まんがタイムきららMAX 2006年2月号
[Machician]第１２話 たったひとつの確かな理由 (11) [△ ▽]

2005/12/20 (Tue)
http://d.hatena.ne.jp/kab_studio/20051220
起きた。
[アニメ]Canvas2 第12話「無邪気なエバーグリーン」
[アニメ]ガン×ソード 第25話「バカがヨロイでやってくる」
帰ってきたー。
[Machician]第１２話 たったひとつの確かな理由 (12) [△ ▽]

2005/12/21 (Wed)
http://d.hatena.ne.jp/kab_studio/20051221
起きたっす。
帰ってきたー。
[アニメ]はっぴぃセブン 第12話「妖しき霊の星」
[Machician]第１２話 たったひとつの確かな理由 (13) [△ ▽]

2005/12/22 (Thu)
http://d.hatena.ne.jp/kab_studio/20051222
起きたっす！
ただいま
[アニメ]灼眼のシャナ 第12話「ゆりかごに花は咲いて」
[アニメ]ARIA 第12話「その やわらかな願いは…」
[Machician]第１２話 たったひとつの確かな理由 (14) [△ ▽]

2005/12/23 (Fri)
http://d.hatena.ne.jp/kab_studio/20051223
起きたっ。
[アニメ]かりん 第8話「みつかっちゃって 恥ずかしい」
[アニメ]SHUFFLE! 第23話「明かされた真実」
[アニメ]舞-乙HiME 第12話「仮面舞踏かい？」
帰宅っ。
アイデア対決・全国高等専門学校ロボットコンテスト2005
sakusaku
[Machician]第１２話 たったひとつの確かな理由 (15) [△]

2005/12/24 (Sat)
http://d.hatena.ne.jp/kab_studio/20051224
起きた。
帰ってきたー。
[買]メロブで買ってきたもの。
[アニメ]ノエイン 第11話「スレチガイ」
[アニメ]ふしぎ星の☆ふたご姫 
　第39話「パールちゃんの祈り☆クリスマスの奇跡」


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

■追加・更新単語

（今週はお休みです）


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

ITエンジニア社員募集 -採用者には５万円進呈-
Supported by effect : http://af1.mag2.com/m/af/0000008658/001/s00000003179001/008

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

　Version 16.11
様々なコンストラクタ

「前回はコンストラクタについて簡単に復習しました」
『ただの普通のコンストラクタね』
「というわけで、今回は特殊なコンストラクタについて説明します」
『げげ』
「特殊なコンストラクタには、以下の3つがあります」

・デフォルトコンストラクタ
・引数を持つコンストラクタ
・コピーコンストラクタ

「ひとつずつ見ていきます。まずはデフォルトコンストラクタから」

・デフォルトコンストラクタ

「デフォルトコンストラクタは、コンストラクタを作らなくても初めから存
在するコンストラクタです」
『 Version 7.08 ( No.128 ) で教えてもらったのだね』
「たとえば、以下のようにコンストラクタがなくても」

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

「デフォルトコンストラクタというコンストラクタが裏で作られて、この
クラスの変数が作られたときに呼び出されます」

    // CData クラスの変数を宣言します。
    // ここでデフォルトコンストラクタが呼びだされます。
    CData cData;

「まぁ、デフォルトコンストラクタは本当に何もしないんだけど」
『？　なら、デフォルトコンストラクタがある、って考えない方がいいん
じゃない？』
「ところがそうはいかないんです。たとえば、引数を持つコンストラクタが
ある場合」

・引数を持つコンストラクタ

「コンストラクタは関数の一種なので、引数を持つことができます」
『 Version 11.18 ( No.218 ) で作ったのだね』

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

public:
    // コンストラクタ。
    CData( int p_i );
};


// Data.cpp
// コンストラクタ。
CData::CData( int p_i )
    : m_iData( p_i )
{
}

「このようにコンストラクタに引数を持たせると、クラスの初期化時に関数
のようにして呼び出すことができます」

    CData cData( 100 );

「さて、話を戻すと、実は引数を持つコンストラクタを作ると、デフォルト
コンストラクタが消えてしまうんです」
『ええっ！？』

    CData cData;
    // コンパイルエラー：
    // error C2512: 'CData' : 
    //     クラス、構造体、共用体にデフォルト コンストラクタがありません。

『うわー、さっきまでできてたのに……』
「引数付きのコンストラクタがあるときには、引数なしコンストラクタも作
るか、引数付きコンストラクタだけ使うようにする必要があるんです」
『引数なしが、デフォルトコンストラクタの代わりになる……ってこと？』
「そういうこと。デフォルトコンストラクタと引数なしコンストラクタは同
じもの。デフォルトコンストラクタは自動的に作られるってだけだから」
『んー、でもさ、なんでこんな面倒なの？　デフォルトコンストラクタが使
えなくなる理由は？』
「安全のため。コンストラクタの目的は？」
『メンバ変数の初期化！』
「だよね。だから、すべてのコンストラクタでちゃんと初期化しなきゃいけ
ないでしょ。初期化をしていないコンストラクタがあったら」
『メンバ変数が初期化されないでクラスが使われちゃう……あ、それを防ぐ
ために、デフォルトコンストラクタがなくなるってこと？』
「そういうこと。そもそもデフォルトコンストラクタはメンバ変数をほった
らかしにするから使わない方がいいくらい。引数なしコンストラクタを作る
癖を付けた方がいいかもね」
『じゃあなんでデフォルトコンストラクタがあるの？』
「それがないと色々と困るから……クラスが構造体と似ているっていうのは」
『説明されました！　 Version 7.07 ( No.127 ) でやったね』
「もしデフォルトコンストラクタがないと、構造体にも必ずコンストラクタ
が必要になるから」
『？　作ればいいじゃん』
「構造体って、 C言語の頃、つまりずっと昔からあるんだけど、そうなると
昔のプログラムが全部使えなくなっちゃうから」
『あー……そりゃまずいね』
「だからデフォルトコンストラクタは必要なわけ」
『なるほどね……』
「さて、最後にコピーコンストラクタについて」

・コピーコンストラクタ

『これは今回初だね』
「コピーコンストラクタは、デフォルトコンストラクタと同じく、自動的に
作られるコンストラクタです」
『デフォルトコンストラクタの他にもあったんだ』
「たとえば、次のようにメンバ変数のみのクラスがある場合」

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

「クラスは、初期化するときに引数として同じクラスを渡すことができるん
です」
『同じクラス、ってことは CData クラスってこと？』
「そういうこと」

// 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;
    cData.m_iData = 100;

    // もうひとつ CData クラスの変数を宣言します。
    // コピーコンストラクタでコピーします。
    CData cData2( cData );

    // 出力します。
    char pch[256];
    sprintf( pch, "%d\n", cData2.m_iData );
    OutputDebugString( pch );
    // 100

    return 0;
}

「 CData クラスの変数を作る際に、コンストラクタの引数として同じクラス
の変数を渡すことができるんです」

    // もうひとつ CData クラスの変数を宣言します。
    // コピーコンストラクタでコピーします。
    CData cData2( cData );

「これが、コピーコンストラクタ」
『コピーをするためのコンストラクタだから、コピーコンストラクタね』
「そういうこと。文字通りメンバ変数もコピーしてくれるんです」
『あ、ホントだ。 cData2.m_iData が 100 になってる』
「つまり、クラスにはコピーコンストラクタという見えないコンストラクタ
が用意されていて、そのコピーコンストラクタが自クラス同士のコピーを
行う、というわけです」
『質問！』
「はい火美ちゃん」
『このコピーコンストラクタも、引数付きのコンストラクタがあるとなく
なっちゃう？』
「ううん、これはなくならないよ。コピーコンストラクタは、同じクラスの
メンバ変数をコピーするんだから、ちゃんと初期化をするんです」
『なるほど、自分自身だったら全部のメンバ変数あるもんね。ん？　もひと
つ質問！』
「はい火美ちゃん」
『じゃあさ、コピーコンストラクタがある、って考える必要あるの？　クラス
はクラス同士でコピーできる、ってことでいいんじゃない？』
「そうはいかないんです。コピーコンストラクタはデフォルトコンストラクタ
と違って、必ずしも自動的に作られるわけではないんです」
『どゆこと？』
「自分で、コピーコンストラクタを作ることができるってこと」
『あー、デフォルトコンストラクタの代わりに引数なしコンストラクタを作
るようなもんね』
「そういうこと。というわけで次回に続く！」

/*
    Preview Next Story!
*/
『コピーコンストラクタ……を作る？？？』
「そう、コピーコンストラクタを作るんです？」
『でも引数は？　そもそも存在してるのかどうかもわからないのに！』
「そこが難しい所だね」
『難しいの！？』
「いや、そうでもないけど」
『どっちかはっきりしろー！』
「というわけで次回」
＜ Version 16.12 コピーコンストラクタを作る ＞
『につづく！』
「あ、 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
*/
////////////////////////////////////////////////////////////////////

