いちばんやさしいゲームの作り方

文系の人でも、数理学がわからない人でもゲームプログラミングをマスターできるブログ

新しいローカルスコープを作るためには、中括弧によるブロックを使います。

C/C++ において中括弧 {} でくくられたブロックは新しいローカルスコープとなります。たとえば次のソースコードを見てください。

#include <iostream>


int main(int argc, char *argv[])
{
  int value = 10;

  {
    int value = 100;

    std::cout <<value <<std::endl; // 100
  }

  std::cout <<value <<std::endl; // 10

  return 0;
}

2カ所で value という同じ名前を持つ変数の内容を表示していますが、1回目は 100 、2回目は 10 と表示されます。1回目は直前で 100 に初期化しているため、何ら不自然なことはないのですが、同じ変数名でも2回目は 10 となっています。これは中括弧でくくられたブロックが局所的なスコープを持っているためです。関数の中で作ったローカル変数は関数の外から参照できないのと同様に、スコープ内で宣言した変数はスコープの外からは参照できなくなります。

むやみに多様するのは良くないと思いますが、これをうまく利用すると変数名の衝突が少なくなります。たとえば results や status などのように汎用的な意味の変数名を、シンボル重複を心配せずに使うことができるようになります。また、副作用としてリファクタリングがしやすくなります(ロジックの依存関係がわかりやすくなるため)。

Contributions




Trackback URL

メルマガ登録・解除
 
挫折不可能!初級ゲームプログラミング完全マニュアル
RSS track feedいちばんやさしいゲームの作り方 TECHNORATI お気に入りに追加する
フィードメーター - いちばんやさしいゲームの作り方 ブログSEO対策:track word カウンター
Firefox meter あわせて読みたい SEO STATUS
このページの先頭へ