MENU閉じる

HEXA BLOG

プログラム

HEXA BLOGプログラム2010.1.26

C++ 参照

こんにちは。平尾です。
寒い時期になってから移動には電車を利用していましたが、
がんばって自転車に戻すようにしています。
人間ドックを気にしてというわけじゃないですよわーい(嬉しい顔)
受ける予定ではありますが(笑)
***
今日はC++の参照についてちょこっとだけお話します。
C言語をメインに使ってきた人だと全部ポインタで出来る!パンチ
なんて思ってしまいがちですが、
それぞれのメリットとデメリットを知った上でちゃんと使い分けるのが良いですねひらめき
参照は関数の引数で使うことが多いです。
こんな感じです。

int function(Param& param);

メリットとしては必ず実体が入ってくるため、
不正アドレス使用によるメモリ破壊を起こさないということです。
なのでポインタと比べ、安全性が高いと言われますグッド(上向き矢印)
デメリットとしてはポインタの様にNULLを渡すことができないので、
例外的な判定を行うことはできなくなりますバッド(下向き矢印)
もうひとつ変わった使い方になるかもしれませんが、
参照をエイリアス(別名)として使用する方法があります。
ゲームでキャラクターを作成しているとき、
メモリを節約するために各行動で共用するフリーのワークを用意することがあります。

class Soldier {
:
// それぞれの行動処理内で自由に使用できるワーク
unsigned int freeWork[FREE_WORK_COUNT];
};

これをエイリアスで置き換えて使用することもできます。

int attack(void)
{
// 攻撃中にダメージを受けた回数。一定以上超えるとダメージへ
unsigned int& damageCount = freeWork[0];
:
}

参照をしているので、damageCount という名前で freeWork[0] を直接操作することができます。
分かりやすい名前に置き換えておけば、別の担当者が見たときに読みやすくなりますサーチ(調べる)ぴかぴか(新しい)
ただし、あちこちで書きすぎると逆に分かりにくくなってしまうので要注意です!!ふらふら
関数の先頭で渡す程度にしておくのが良いと思います。
***
健康な体が生きていく上で最も高価な資本です!有料(プライスレス)
健康体でモリモリがんばれるよう、自転車に乗って体力をつけていきたいですね手(グー)

RECRUIT

大阪・東京共にスタッフを募集しています。
特にキャリア採用のプログラマー・アーティストに興味がある方は下のボタンをクリックしてください

RECRUIT SITE