일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- C++
- decimal
- standford University
- 코딩테스트
- 형변환
- compile time constants
- 기계학습 기초
- Machine Learning
- coursera
- #define
- 코드블럭 오류
- regression problem
- 본즈앤올
- classification problem
- #endif
- Andrew Ng
- Runtime constants
- 기계학습
- 이코테
- sizeof()
- 홍정모님
- CLion
- 프로그래밍
- 나동빈님
- 단항연산자
- 학습 알고리즘
- 연산자
- const
- algorithm
- Greedy
- Today
- Total
wellcome_공부일기
01.09. C++ | std :: 명칭공간(Name Space)이란? 본문
<목차>
1. 명칭공간(Name Space)이란?
2. 명칭공간(Name Space) 활용하기
- 같은 이름을 가진 함수 분리
- 명칭공간(Name Space) 선언하여 사용하기
- 명칭공간(Name Space) 안에 명칭공간(Name Space) 만들기
명칭공간(Name Space)이란?
명칭공간(Name Space)은 C과 달리 C++에 추가된 특징이다. 명칭공간 (Name Space)은 선언 범위로, 그 안에 식별자(타입, 함수, 변수 etc.) 이름들에게 범위를 제공한다. 여러 명칭공간 (Name Space) 블락(block) 안에서는 같은 이름이 허용된다. 이러한 모든 블럭 안에서 모든 선언은 명명된 범위에서 선언된다.
예를 들어, C++에서 만약 같은 이름이지만 다른 업무를 하는 2개의 함수, xyz()가 있다고 해보자.
두 함수 중에 하나의 함수를 부를 때 모호성을 방지하기 위해서는, 우리는 두 함수를 다른 두개의 분리된 명칭공간 안에 선언해야 한다.
두 함수 중에 하나가 명칭공간 name1에 선언되고, 다른 하나는 name2에 선언된다고 생각해보자.
그러면 우리는 두 함수를 name1::xyz() 그리고 name2::xyz()로 부를 수 있다.
C++은 std라고 불리는 standard namespace를 사용하는데, std에서 모든 내장된 클래스와 함수들이 선언되어 있다.
그래서 우리는 C++ 프로그램 시작부분에서 명칭공간인 std에서 선언된 멤버를 사용하기 위해서 'using namespace std;'라는 명령문으로 사용한다.
- 같은 이름의 함수 2개일 경우
#include <iostream>
int doSomething(int a, int b)
{
return a + b;
}
int doSomething(int a, int b)
{
return a * b;
}
int main() {
std::cout << doSomething(3,5) << std::endl;
std::cout << doSomething(3,5) << std::endl;
return 0;
}
- 한 개의 명칭공간(Name Space)를 이용하여 분리
#include <iostream>
namespace MySpace1
{
int doSomething(int a, int b)
{
return a + b;
}
}
int doSomething(int a, int b)
{
return a * b;
}
int main() {
std::cout << MySpace1 :: doSomething(3,5) << std::endl;
std::cout << doSomething(3,5) << std::endl;
return 0;
}
- 두 개의 명칭공간(Name Space)을 이용하여 분리
#include <iostream>
namespace MySpace1
{
int doSomething(int a, int b)
{
return a + b;
}
}
namespace MySpace2
{
int doSomething(int a, int b)
{
return a * b;
}
}
int main() {
std::cout << MySpace1 :: doSomething(3,5) << std::endl;
std::cout << MySpace2 :: doSomething(3,5) << std::endl;
return 0;
}
- 명칭공간(Name Space) 선언하여 사용하기
#include <iostream>
namespace MySpace
{
int doSomething1(int a, int b)
{
return a + b;
}
int doSomething2(int a, int b)
{
return a * b;
}
}
using namespace std;
int main() {
using namespace MySpace;
cout << doSomething1(3,5) << endl;
cout << doSomething2(3,5) << endl;
return 0;
}
- 명칭공간(Name Space) 안에 명칭공간(Name Space) 만들기
main()에 ' MySpace :: InnerSpace :: my_function(); ' 만 넣어서 실행시킬수도 있다.
#include <iostream>
using namespace std;
namespace MySpace
{
namespace InnerSpace
{
void my_function()
{
cout << "Hello, World!" << endl;
}
}
}
int main() {
using namespace MySpace :: InnerSpace;
my_function();
return 0;
}
*해당글은 홍정모님의 따라 배우는 C++을 공부한 토대로 작성되었습니다.
'프로그래밍 > C++' 카테고리의 다른 글
01.11. C++ | 변수 초기화 3가지 방법과 차이 (0) | 2020.04.30 |
---|---|
01.10. C++| 전처리기(Preprocessor)란? (1) | 2020.04.29 |
01.08. C++ | 프로그래밍에서 지켜야 할 기본적 서식(Formatting) (0) | 2020.04.25 |
01.07. C++ | 피연산자(Operand) 갯수에 따른 연산자(Operator)의 3가지 종류 (0) | 2020.04.24 |
01.06. C++ | 식별자의 범위(Scope of an Identifier) (0) | 2020.04.23 |