Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- stl
- C언어
- 아두이노
- 통계학
- set
- html
- arduino compiler
- 자료구조
- priority_queue
- Algorithm
- Stack
- WinAPI
- Arduino
- Array
- 아두이노 소스
- map
- 시스템프로그래밍
- queue
- c++
- Deque
- Visual Micro
- 라인트레이서
- 운영체제
- 컴퓨터 그래픽스
- vector
- 수광 소자
- 아두이노 컴파일러
- LineTracer
- list
- directx
Archives
- Today
- Total
Kim's Programming
네임스페이스(namespace)의 이용 본문
namespace의 사용
namespace는 변수명의 충돌을 막기위해서 사용합니다. 다음 소스의 경우를 보겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include<iostream> namespace ABC { int i; } namespace DEF { double i; } void main() { int i;//지역 변수 ABC::i;//네임스페이스 ABC 변수 DEF::i;//네임스페이스 DEF 변수 } | cs |
전부 같은 i입니다. 6번째, 10번째, 그리고 15번째 모두 같은 i라고 선언이 되어있습니다. 하지만 다르게 쓸 방법이 필요하다면? 이런경우에 namespace를 쓰게 됩니다. 다 같은 i지만 namespace를 사용함으로써 같으면서 다른 i들이 됩니다.
namespace의 규칙
namespace는 다음과 규칙들을 따라서 만들어야합니다.
- 네임스페이스는 다른 명칭과 중복되어서는 안됩니다.
- 네임스페이스는 반드시 전역 영역에 선언해야합니다. 지역 네임 스페이스는 허가되지 않습니다.
- 네임스페이스는 네임스페이스 끼리 중첩이 가능합니다.
- 네임스페이스는 항상 개방이 되어있기때문에 여러번 나누어 명칭을 선언할 수 있습니다.123456789101112131415161718192021#include<iostream>int i;//전역 변수namespace ABC{int i;}namespace DEF{double i;}namespace ABC{int a, b;}void main(){ABC::a;ABC::b;ABC::i}
cs - 네임 스페이스는 이름을 가지지 않을 수 도 있습니다 이름을 가지지 않는 네임스페이스는 전역 변수와 같습니다. 또한 사용시에 소속을 밝힐 필요도 없습니다. 이는 외부 정적 변수와 성격이 동일한데 static은 c의 방식이고 이름없는 네임스페이스는 C++의 방식입니다.
'Programming > Cplusplus' 카테고리의 다른 글
C++에서의 다양한 Casting 방법들 (0) | 2018.02.01 |
---|---|
C++ - 클래스 상속(2/3) (0) | 2015.10.12 |
C++ - 클래스 상속(1/3) (0) | 2015.09.22 |
C++ - 연산자 오버로딩(3/3) (0) | 2015.09.21 |
C++ - 연산자 오버로딩(2/3) (0) | 2015.09.20 |