Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- git
- Effective Java 3/e
- expire_logs_days
- log_bin
- spring
- current_date
- Effective Java
- Node
- Regular expression
- 정규표현식
- update
- JavaScript
- Express
- Chunk
- REACTJS
- mysql 5.5
- eslint
- spring cloud
- Webpack
- 퀵소트
- migration
- nodejs
- upgrade
- log4j2
- MySQL
- REACT
- npm
- Spring Batch
- regex
- java
Archives
- Today
- Total
내 세상
[C++] namespace, std 본문
728x90
반응형
namespace 문법
- 관련된 함수, 변수, 구조체 등을 묶는 도구
핵심
1. name의 요소에 접근하는 3가지 방법
2. using 지시어, 선언은 함수 안이나 밖에 있을 수 있음.
3. 가능한 완전한 이름을 사용하는 것이 좋음.
#include <iostream>
namespace Video
{
void init()
{
printf("Video Init\n");
}
}
namespace Audio
{
void init()
{
printf("Audio Init\n");
}
}
using namespace Audio; // global space
void init()
{
printf("System Init\n");
}
void main()
{
// 방법1) 완전한 이름 사용
Audio::init();
Video::init();
// 방법2) using 선언(declaration) 사용
using Audio::init; // init 함수만 Audio 이름 없이 사용
init();
// 방법3) using 지시어(directive) 사용
using namespace Audio; // Audio 안의 모든 이름을 Audio 없이 사용
init();
// :: : global namespace 에 접근할때 사용, line20
::init();
}
std
- C++ 표준 모든 요소의 namespace
C언어 헤더 / C++ 헤더
- xxx.h ----> cxxx
- string.h ---> cstring
- stdlib.h ---> cstdlib
#include <stdio.h>
#include <algorithm> //해당 헤더파일 내 min(), max() 함수 존재.
using namespace std; // 이렇게 열어주면 min(10, 3) 이런식으로 바로 사용 가능 함.
int count = 100;
int main()
{
int n = min(10, 3);
printf("%d\n", n);
printf("%d\n", count); // @@@@@@@@@ 에러 발생 @@@@@@@@@@
// 에러 이유?
// 전역변수 count인지, std::count() 함수 주소 출력인지
// 구별 안되기 때문에.
// ----> 이러한 이유로 namespace 보다는 직접 std:: 로 사용하는 것이 좋음.
return 0;
}
728x90
반응형
'Language > C/C++' 카테고리의 다른 글
[C++] C++스타일의 캐스팅 (0) | 2020.01.02 |
---|---|
[C++] C++11/C++17 에서의 반복문/제어문 (0) | 2020.01.02 |
[C++] 함수 (0) | 2020.01.02 |
[C++] 표준입출력, 변수 선언 (0) | 2020.01.02 |
[C Language] C언어로 퀵소트 구현하기 (0) | 2019.10.28 |