-
🎶식별자를 더 잘 구분하여 오류를 최소화하기 위한 기능
🎶프로젝트가 커지고, 여러 파일, 여러 개발자가 나눠서 개발을 하게 되면
🎶식별자(변수, 함수 등의 이름)의 이름이 같아져 충돌이 일어 날 확률이 높아짐.
🎶이런 충돌이 발생하지 않기 위해 만들어진 것이 namespace 개념
기본 문법
namespace (namespace 이름) { } using namespace 네임스페이스 이름; // namespace내에 있는 모든 요소의 접근을 풀어 줌. using 네임스페이스::식별자; // namespace내에 특정 요소의 접근을 풀어 줌
간단한 실습
✅ 'seoul' 을 의미하는 namespace 를 생성하고, 그 안에 지역변호와 랜드마크를 의미하는 변수를 각각 생성.
✅ 'busan' 을 의미하는 namespace 를 생성하고, 그 안에 지역변호와 랜드마크를 의미하는 변수를 각각 생성.
✅ 지역번호와 랜드마크에 해당 하는 변수 이름은 서울과 부산의 namespace가 동일해야 한다.
✅ main 함수에서 namespace 에 있는 변수에 원하는 값을 할당하고 출력하라.
✅ busan namespace 는 using 을 응용하여 출력하라.
풀이
✅ 각각 namespace 를 생성하고, 그 안에 지역변호와 랜드마크를 의미하는 변수를 각각 생성.
namespace seoul { string area_num; string lendmark; void printAll() { cout << area_num << " 그리고 서울 " << lendmark << endl; } }
namespace busan { string area_num; string lendmark; void printAll() { cout << area_num << " 그리고 부산 " << lendmark << endl; } }
✨왜 지역 번호는 int 가 아니라 string 으로 했나요?
→ 앞의 번호가 02 이지만, 출력할 때 02와 2는 서로 다르기에 정상적으로 출력되지 않았기 때문입니다.
✅ main 함수에서 namespace 에 있는 변수에 원하는 값을 할당하고 출력하라.
seoul::area_num = "02"; seoul::lendmark = "노원구"; seoul::printAll();
✅ busan namespace 는 using 을 응용하여 출력하라.
area_num = "052"; lendmark = "돼지국밥"; printAll();
✅ 출력 화면
🎉해당 글의 내용은 "포스코 x 코딩온 스마트 팩토리 과정 수업" 에서의 수업 자료 및 실습 과제 등에서 일부 발췌되어 작성 되었습니다.
'개발 > C++' 카테고리의 다른 글
[C++] Vector 복습. 2차원 배열에서 행과 열의 합을 구하기. (0) 2023.09.05 [C++] Vector 문법 복습 및 예제 풀이 (0) 2023.09.05 [C++] vector 의 중복 요소 삭제 실습. (0) 2023.09.04 [C++] Vector의 기본 개념 사용법, 함수, 이중 Vector 선언 후 배열 (0) 2023.09.04 [C++] 동적 배열과 포인터 개념과 문법 공부 (1) 2023.09.04 댓글 (비로그인 댓글 허용하지 않습니다.)