namespace
名前空間
名詞
複数形: namespaces
namespaceは、プログラミングにおいて名前の衝突を避けるための論理的なグループ化を指します。大規模なプロジェクトや複数のライブラリを併用する場合、異なる開発者が同じ名前の関数やクラスを定義してしまう可能性があります。このような状況で、namespaceを使用することで、それぞれの要素を特定の領域に閉じ込め、一意に識別することが可能になります。
スコープ管理と名前の衝突namespaceの主な目的は、識別子の可視性を制御することです。例えば、stdという名前空間がある場合、その中の関数を呼び出すにはstd::function_nameのように記述し、どの領域に属しているかを明示します。これにより、同じfunction_nameという名前の関数が別の名前空間に存在していても、プログラムは混乱することなく正しく動作します。
他の概念との違いnamespaceは、scope(スコープ)と混同されやすいですが、概念的な役割が異なります。scopeが変数の有効範囲や生存期間という時間的・空間的な制約を指すのに対し、namespaceは名前を整理するための論理的な分類を指します。また、オブジェクト指向言語におけるpackageやmoduleに近い概念ですが、言語によってその厳密な定義や機能は異なります。
意味
関連語
scopedomainenvironmentidentifiervariablesymbolnamecollisionconflictgloballocalmodulepackageclassobjectfunctionmethodattributepropertyregistrydictionarymaphashtableindexpointerreferenceaddressmemoryallocationbindingresolutionlookupimportexportaliasprefixsuffixqualifierkeywordsyntaxsemanticscompilerinterpreterruntimeabstractionencapsulationhierarchystructureorganizationcategorizationclassificationcontainerwrapperinterfaceAPIlibraryframeworksymbol tablevisibilityshadowingoverloadingoverriding