Language/C++
C++ 네임스페이스
JunOnJuly
2024. 2. 2. 17:25
728x90
#include <iostream>
// 네임스페이스 선언
namespace sample_namespace_1
{
// 네임 스페이스 내부에 함수 선언
void sample_1(void)
{
std::cout << "sample_namespace_1 의 sample_1" << std::endl;
}
}
namespace sample_namespace_2
{
// 이름 공간의 중첩
namespace inner_sample_namespace_2
{
void inner_sample_1(void)
{
std::cout << "sample_namespace_2 의 inner_sample_namespace_2 의 inner_sample_1" << std::endl;
}
}
void sample_1(void)
{
std::cout << "sample_namespace_2 의 sample_1" << std::endl;
}
}
namespace sample_namespace_3
{
// 함수의 선언만
void sample_1(void);
}
namespace sample_namespace_4
{
void sample_1(void);
}
int main(void)
{
// :: -> 범위지정 연산자, 네임스페이스를 지정할 때 사용하는 연산자
sample_namespace_1::sample_1();
sample_namespace_2::sample_1();
// 네임 스페이스 내부의 네임스페이스 내부의 함수
sample_namespace_2::inner_sample_namespace_2::inner_sample_1;
sample_namespace_3::sample_1();
sample_namespace_4::sample_1();
// using 을 사용하면 :: 없이 네임스페이스 내부의 함수 사용 가능
using sample_namespace_1::sample_1;
sample_1();
// using namespace 를 사용하면 :: 없이 네임스페이스 사용 가능
using namespace sample_namespace_2;
inner_sample_namespace_2::inner_sample_1();
// 네임 스페이스에 별칭 지정 가능
namespace inner_2 = sample_namespace_2::inner_sample_namespace_2;
inner_2::inner_sample_1();
return 0;
}
void sample_namespace_3::sample_1(void)
{
// 함수의 정의
std::cout << "sample_namespace_3 의 sample_1" << std::endl;
}
void sample_namespace_4::sample_1(void)
{
std::cout << "sample_namespace_4 의 sample_1" << std::endl;
}
728x90