c++
11월 1일 namespace 기초
송시혁
2013. 11. 1. 11:07
scope operator '::' 범위지정.
예를들어 코드에서 전역변수 a=100;이라고 지정하나, 중괄호안에 똑같은 이름의 변수의 50을 넣으면
50이 출력된다.
그때 100을 출력하고 싶으면 ::을 a앞에 붙여서 사용한다.
#include <stdio.h>
int a=100;전역변수
int main()
{
int a=50;중괄호내부에서의 선언.
printf("%d\n", a); -50이 출력
printf("%d\n", ::a); - 100이 출력.
return 0;
}
#include <iostream>
|
위 소스는 namespace에 관한 또 다른 예제.
main()함수 위에 namespace SAM_1, SMA_2라고 각각 만든 다음 아래 MAIN()함수로 코드를 작성하면
각가 a=100, b = 200이 출력이 된다.
그러나, namesapce SAM_2에 변수 b를 a로 바꾼다면 어떻게 될까?
그러면 에러 혹은 warning을 컴파일러가 띄우게 된다.
namespace는 변수를 중복해서 사용할 수 없다. 지정된 멤버가 sam_1의 것인지, sam_2의 멤버인지 모호하기 때문이다.