-
[cpp] namespaceC++(cpp) 2021. 6. 21. 14:40
일단 첫번째 프로그램 만들어서 컴파일 해보기
#include <iostream> // standard input, output int main() { int sum; sum = 0; for (int i = 1; i <= 10; i++) { sum += i; } std::cout << sum ; return (0); }
컴파일: g++ -o first first_program.cpp ./first 결과: 55
header를 만들어서 namespace를 공부해봅시다.
[ 상황 가정 ]
-> 서초에는 heom, taehokim, dongslee, jlee가 있습니다.
-> 개포에는 yekim, sumoon, yukim이 있습니다.
위 내용을 기반으로 짠 헤더 first_header.h
#include <iostream> namespace seocho { void jlee() { std::cout << "모르겠어요..ㅎㅎ" << std::endl; } void dongslee() { std::cout << "킹정.." << std::endl; } void taehokim() { std::cout << "아니에요~" << std::endl; } void heom() { std::cout << "아 너무 웃겨 ㅋㅋㅋㅋㅋㅋㅋ" << std::endl; } } namespace gaepo { void yekim() { std::cout << "아뭐야 -3-" << std::endl; } void sumoon() { std::cout << "🤘🏻👌🏻👍🏻👉🏻👐🏻🙌🏻👏🏻" << std::endl; } void yukim() { std::cout << "비타민 드실래요?" << std::endl; } }
namespace에 해당하는 함수를 호출하기
1. namespace 명시하기
`seocho` namespace에 있는 `jlee`가 무슨 말을 하고 있는지 출력해봅시다.
`gaepo` namespace에 있는 `yukim`은 무슨 말을 하고 있는지 출력해봅시다.
#include <iostream> // standard input, output #include "first_header.h" int main() { //namespace std::cout << "서초에 있는 제이리가 하는 말:" << std::endl; seocho::jlee(); std::cout << "개포에 있는 유킴이 하는 말:" << std::endl; gaepo::yukim(); return (0); }
결과창:
서초에 있는 제이리가 하는 말: 모르겠어요..ㅎㅎ 개포에 있는 유킴이 하는 말: 비타민 드실래요?
2. namespace를 일일이 써주기 귀찮을때(using)
using을 이용하면 namespace를 일일이 명시해주지 않고 함수이름만 써줄 수 있습니다.
다른 namespace의 함수는 namespace를 이전처럼 명시해주면 똑같이 쓸 수 있습니다.
#include <iostream> // standard input, output #include "first_header.h" using namespace seocho; int main() { std::cout << "seocho의 jlee가 하는 말" << std::endl; jlee(); std::cout << "seocho의 taehokim이 하는 말" << std::endl; taehokim(); std::cout << "seocho의 heom이 하는 말" << std::endl; heom(); std::cout << "gaepo의 yukim이 하는 말" << std::endl; gaepo::yukim(); return (0); }
결과창:
seocho의 jlee가 하는 말 모르겠어요..ㅎㅎ seocho의 taehokim이 하는 말 아니에요~ seocho의 heom이 하는 말 아 너무 웃겨 ㅋㅋㅋㅋㅋㅋㅋ gaepo의 yukim이 하는 말 비타민 드실래요?
'C++(cpp)' 카테고리의 다른 글
[cpp] 함수 오버로딩, 생성자, 디폴트 생성자 (0) 2021.06.21 [cpp]객체, 클래스, 접근 제어자 (0) 2021.06.21 [cpp] new, delete (0) 2021.06.21 [cpp] 참조자(&) (0) 2021.06.21 [Cpp modules] cpp 개념 탑재하기 (0) 2021.06.21