ホーム | ブログ | 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