ホーム | ブログ | C++辞典 | サイトマップ | FAQ | 掲示板 | リンク集
メイン・メニュー
インデックス
プログラミング
その他
有効範囲 のバックアップ差分(No.3)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
* 有効範囲 (scope) [#l49392c4]
 
  特定の[[名前]]が有効になる、必ずしも連続していない[[プログラム]]上の部分のこと。~
  有効範囲には以下のものがある。
 
 &aname(potential);
 ** 潜在有効範囲 (potential scope) [#g01f7775]
  [[宣言]]の有効範囲を規定するための概念。
 
  0001 int a = 1234;
  0002 int foo()
  0003 {
  0004     int a = 56;
  0005     return a + 1;
  0006 }
 
  上記のコードで、0001で宣言された[[変数]] a の潜在有効範囲は 0001〜0006 までとなるが、実際の有効範囲は 0004 で宣言された a の有効範囲 (0004〜0005) を除いたものとなる。
 
 &aname(local);
 ** 局所的な有効範囲 (local scope) [#oa1c683e]
  [[ブロック]]内で[[宣言]]した[[名前]]は局所的な有効範囲を持つ。その[[潜在有効範囲>#potential]]は、宣言位置から宣言領域 (そのブロック) の終わりまでとなる。
 
 &aname(prototype);
 ** 関数原型有効範囲 (function prototype scope) [#med79ab9]
  [[関数宣言]]の中の[[仮引数>引数#parameter]]名、または[[関数定義]]の[[宣言子]]ではない[[関数宣言子]]の中の[[仮引数名>引数#parameter]]は、関数原型有効範囲を持つ。~
  [[関数宣言子]]の[[仮引数>引数#parameter]]の[[名前]]は省略できるが、もしある場合は、その[[関数宣言子]]の中で一意でなければならない。
 
 &aname(function);
 ** 関数有効範囲 (function scope) [#v237069a]
  [[ラベル]]は関数有効範囲を持つ。逆に、関数有効範囲を持つものはラベルだけである。~
  ラベルは、それが[[宣言]]された関数の中であれば、どこにおいても使用することができる。
 
 &aname(namespace);
 ** 名前空間有効範囲 (namespace scope) [#uf524c52]
 
 &aname(class);
 ** クラス有効範囲 (class scope) [#xe29a96d]
 
 **参照 [#eba821ac]
 → [[名前検索]]
 
 

トップ   一覧 単語検索   ヘルプ   最終更新のRSS
 ホーム | プロフィール | メール | ログイン | 管理
Copyright © 2005-2009 by TAKAGI Nobuhisa