기타/C++

[C++] 네임스페이스

푸쿠이 2020. 6. 6. 17:17
기본 문법
#include <iostream>

namespace N_CALCULATION
{
	int add(int nData1, int nData2);
	int mul(int nData1, int nData2);
}

int main()
{
	printf("%d\n", N_CALCULATION::add(10, 20));
	printf("%d\n", N_CALCULATION::mul(2, 5));

}

int N_CALCULATION::add(int nData1, int nData2)
{
	return nData1 + nData2;
}

int N_CALCULATION::mul(int nData1, int nData2)
{
	return nData1 * nData2;
}

네임스페이스는 찾아쓰기 쉬우려고 사용한다.

using namespace 사용?

프로그래머가 의도해서 묶어서 만들어놨는데

N_CALCULATION:: 를 생략하기 위해 using namespace를 사용하는 상황은 없다.

 

공부할 때 귀찮아서 using namespace std; 정도는 봐주는 걸로..

#include <iostream>

namespace N_CALCULATION
{
	int add(int nData1, int nData2);
	int mul(int nData1, int nData2);
}

using namespace N_CALCULATION;

int main()
{
	printf("%d\n", add(10, 20));
	printf("%d\n", mul(2, 5));

}

int add(int nData1, int nData2)
{
	return nData1 + nData2;
}

int mul(int nData1, int nData2)
{
	return nData1 * nData2;
}

using namespace 를 사용했을 경우에 네이밍이 겹친다면 :: 를 이용해 빈 네임스페이스에 접근하자.

#include <iostream>

namespace N_CALCULATION
{
	int add(int nData1, int nData2);
}

int add(int nData1, int nData2);

using namespace N_CALCULATION;

int main()
{
	printf("%d\n", N_CALCULATION::add(10, 20)); // N_CALCULATION 30 출력
	printf("%d\n", ::add(10, 20)); // global 30 출력
}

int N_CALCULATION::add(int nData1, int nData2)
{
	printf("N_CALCULATION ");
	return nData1 + nData2;
}

int add(int nData1, int nData2)
{
	printf("global ");
	return nData1 + nData2;
}