Namespace
C++가 지원하는 각종 요소들(변수, 함수, 클래스 및 각종 선언 등)을 한 범주로 묶어주기 위한 문법으로 중첩이 가능하다.
선언할때는 식별자 이름 앞에 ::을 붙여서 표기한다.
사실상 C++의 모든 변수나 함수는 C++ 문법 상 namespace에 속한다고 할 수 있는데, 예시로 모든 전역변수나 함수는 global namespace에 해당한다.
#include <iostream>
using namespace std; // 디폴트 네임스페이스가 std가 된다.
int nData = 999; // global namespace에 속하는 전역변수
namespace Test // Test namespace 선언
{
int nData = 100; // Test::nData
void testFunc() // Test::testFunc()
{
cout << "Test::testFunc()" << endl;
}
namespace NestedTest { // Test::NestedTest
string nestedNamespaceString = "중첩된 네임스페이스 테스트";
}
}
int main()
{
cout << "namespace using" << endl; // namespace global
Test::testFunc(); // namespace Test
cout << ::nData << endl; // namespace global
cout << Test::nData << endl; // namespace Test
cout << Test::NestedTest::nestedNamespaceString << endl; // namespace Test::NestedTest
}
'C, C++' 카테고리의 다른 글
C++) OOP에서 객체란 무엇인가 (0) | 2024.01.20 |
---|---|
C++) Name Mangling (0) | 2024.01.20 |
C++) 함수 템플릿 (0) | 2024.01.20 |
C++) 함수 다중 정의(Overloading) (0) | 2024.01.20 |
C++) 범위 기반 for문 (0) | 2024.01.19 |