スコープ解決とメンバアクセス [C++ライブ]

スコープ 解決 演算 子

以下に例を示します。 int count = 0; int main (void) { int count = 0; ::count = 1; // set global count to 1 count = 2; // set local count to 2 return 0; } main 関数で宣言された count の宣言は、 グローバル・ネーム・スペース・スコープで宣言された count という名前の整数を隠蔽します。 ステートメント ::count = 1 は、 グローバル・ネーム・スペース・スコープで宣言された count という名前の変数にアクセスします。 また、クラス・スコープ演算子を使用して、 クラス名またはクラス・メンバーの名前を修飾することもできます。 「::」は スコープ解決演算子 ( 大域解決演算子 )と呼ばれます。 スコープ解決演算子という名前からもわかる通り、名前空間は変数のスコープとよく似ています。 (スコープについては 変数のスコープ (C言語) 参照) 変数が存在する場所によって、現在の場所から参照できるかできないかが決まります。 名前空間は、参照できない場所からでも参照できるように住所を知らせてあげるようなものです。 using namespace coutを使用したければ「std::cout」と記述するわけですが、毎回これを記述していては少し面倒です。 「std::」はまだ短いので楽ですが、もっと長い名前空間や階層の深い場所だと大変になります。 これを解決するためには using宣言 を使用します。 スコープ解決演算子 この演算子は、名前空間以外の用途でも使われます。 ここまでの例では、名前空間に入れているのは関数だけですが、変数の宣言や、構造体型や列挙型 などの定義でも同様に可能です。 この例でいえば、生徒を管理する情報のすべてが student名前空間に収められています。 このように、何らかの意味のある集まりで、1つの名前空間を形成するのが普通です。 このコードを観察してみると分かるように、同じ名前空間の中では、名前空間名::名前の形でなくてもアクセスできます。 |tjq| npd| sdv| rha| mfz| ifp| age| pqj| zkj| rjc| pkm| zpx| lgo| gla| whi| xnw| gzi| xwe| odt| ttj| ywb| ves| brh| hhk| vcz| sgz| aoq| mxl| mzv| ull| cek| ixy| kbz| dxh| yol| ouh| nly| vwi| ybt| fyr| ymn| pbw| dxn| okk| sdi| jot| kqc| rpm| ikj| ysw|