예전에 C++ 언어에 대해 정리했던 것을 다시 복습겸 정리 해보려한다.
1. cout cin 익히기
cout은 표준 출력 객체로<< 연산자함수와 같이 사용한다. -> like printf( C언어)
cin 은 표준 입력 객체로 >> 연산자 함수와 같이 사용한다.. -> like scanf( C언어)
예를 들어 코드를 한번 살펴 보자.
#include <iostream> //C언어에서 stdio.h
using namespace std;
int main() {
int number = 25;
double d_number = 17.5;
char str[20] = "Hello World";
cout << "내가 입력한 정수는 : " << number << endl << "내가 입력한 실수는 : "<< d_number << endl;
cout << str << endl; // endl = end of line 으로 씨언어에서는 \n 과 비슷한 역할을 진행합니다.
return 0;
}
라는 코드를 입력해서 컴파일을 해보면
이라는 결과가 나타나게 된다.
이 코드에서도 C++ 과 C언어와 다른 점이 보인다. 데이터 타입에 신경 쓰지 않는 것이다.
C언어에서 예를 들자면
Int 형으로 변수를 설정하게 되면 printf에서 (%d) 라는 것을 통해 출력이 되는 것인데 C++ 에서는 거기에 상관없이 연속적으로 << 연산자를 사용할 수 가 있다.
2. namespace ?
이번에 한번 포스팅 할 내용은 namespace 이다. namespace 말 그대로 이름 공간이라는 것
하나의 그림으로 예시를 들어보자면
각각의 다른 프로그래머가 minus 라는 함수를 다른 라이브러리를 사용해서 썼다고 가정해보면 합쳐보면 충돌 할 가능성이 높다.
이를 방지하고자 namespace를 활용 한다.
name space를 활용하는 코드를 살펴보면
#include<iostream>
using namespace std;
namespace mspark { // namespace mspark 작성
int chap02;
void test() { cout << "mspark : handsome" << endl; }
void test1() { cout << "mspark : very handsome " << endl; }
}
namespace mspark2 { // name space mspark2 작성
using namespace mspark;
int chap02_1;
void test() { cout << "mspark : not handsome" << endl; }
namespace mspark3 {
void test() { cout << "mspark : smart" << endl; }
}
}
int main() {
mspark2 :: test(); // mspark test를 불러온다.
mspark2 :: test1(); // mspark에 test1은 없으므로 mspark test1을 불러온다.
mspark2 :: mspark3 :: test(); // mspark2의 mspark3의 test를 불러온다
return 0;
}
코드를 분석해보면
3번째 줄코드에서 namespace 로 mspark를 만들었다.
6 ~7 번째 코드를 보시면 그 안에 test, test1 이라는 함수를 살펴보자.
10번째 줄을 보시면 mspark2라는 namespace를 만들었다. 그 안에서는 mspark와 같은 함수 명인 test 함수를 만들었다.
그리고 mspark2 안에 또다른 namespace mspark3를 만들었다.
그림으로 나타내자면
이런 식으로 나타낼 수 있다.
main() 객체에서
mspark2 :: test(); 라고 되어있다. 여기서 mspark :: 라는 식은 namespace mspark를 사용한다는 뜻이다.
msapark2 :: test1() 를 보면 mspark2라는 namespace 안에 test1 의 함수가 없다.
그러므로 namespace mspark에 있는 test1 함수를 불러오는 것이다.
저 코드를 컴파일 해보면
라는 결과를 나오게 된다.
끝.
'개발 지식 > C++' 카테고리의 다른 글
[C++] char*, char[], string 변수의 차이 (1) | 2020.09.15 |
---|
댓글