728x90
728x90
Namespace
변수 또는 함수의 이름이 같을 때 생기는 충돌을 예방하기 위한 방법이다. (큰 프로젝트에서)
<기본형>
namespace ns {
code
}
<example>
#include <iostream>
namespace first_space{
void func()
{
std::cout << "hi";
}
}
namespace second_space{
void func()
{
std::cout << "hi";
}
}
int main()
{
first_space :: func();
second_space :: func();
return 0;
}
first_space와 second space가 같은 이름을 가진 func 함수를 가지고 있다. main 함수에서 각각의 func 함수를 불어올 때는 namespace :: 함수 이름을 사용하면 된다.
using namespace ns;
#include <iostream>
using namespace std;
namespace first_space{
void func()
{
cout << "hi"; //using namespace std를 사용함으로써 std :: 는 선언하지 않아도 된다.
}
}
namespace second_space{
void func()
{
cout << "hi";
}
}
int main()
{
using namespace first_space;
func();
return 0;
}
전체 코드에서 namespace를 std를 사용하였기 때문에 std :: 선언이 필요한 입출력에서 따로 선언하지 않아도 된다. main 함수에서 first_space를 using namespace 하였기 때문에 func() 함수는 first_space에 있는 func()이 호출된다.
728x90
728x90
'Language > C++' 카테고리의 다른 글
[C++] Dynamic array (std::vector) - 컴도리돌이 (0) | 2020.10.26 |
---|---|
[C++] Reference(&) - 컴도리돌이 (0) | 2020.10.18 |
[C++] 동적할당(Dynamic memory allocation) - 컴도리돌이 (0) | 2020.10.17 |
[C++] introduction to C++ - 컴도리돌이 (0) | 2020.10.15 |
[C++] Pointer and Const -컴도리돌이 (0) | 2020.10.14 |