티스토리 뷰
C++ 언어를 배워야 할 일이 가끔 생깁니다. 취업 준비를 위해서나 C/C++ 환경이 필요한 일을 할 때가 있겠지요?
좋은 소식은 C와 자바를 할 줄 안다면 C++ 배우는 것은 그리 큰 일은 아니라는 것입니다. 물론 깊이 들어가면 많이 다르고 어려워지지만 가볍게 할 줄 아는 정도라면 며칠이면 배울 수 있습니다. 당신의 언어 툴박스에 C++을 추가해 보는 것이 어떨지요? 자 이제 시작합시다.
C++은 C에다 객체지향 기능을 추가한 언어입니다. 그래서 진지하게 이 언어를 제대로 배우려면 사실 C 전부에다가 그 정도 양을 더 공부해야 할 정도로 크고 복잡한 언어입니다. 그러나 C를 이미 알고 자바의 객체 지향도 안다면 다행히도 간단히 해볼 수 있는 지름길이 있습니다.
C++은 C와 자바가 갖지 않은 새로운 개념과 기능을 몇가지 가지고 있습니다. 참조형, 연산자오버로딩, 템플릿 등이 그런 어려운 주제에 해당합니다. 그런 것들도 간단하게 자바와 비교하여 뭔지 정도만 알고 있으면 좋을 것 같습니다.
C++은 입출력이 C와 많이 다릅니다. 그런데 사실 C++ 입출력은 참 잘 만들어져서 쉽고 편리합니다. 써보면 그것 때문에 C++이 좋아지기도 합니다. 입출력은 언어를 배울 때 기본이므로 잘 알아두면 좋겠지요?
클래스와 객체지향이 자바와 약간 다릅니다. 특히 값모델(value model) 이것이 상당히 어려운 개념입니다. 이것은 자바와 다른 C++의 메모리 모델에도 중요한 역할을 합니다. 이걸 제대로 이해한다면 C++의 메모리 효율성을 내 것으로 할 수 있습니다. 가비지 컬렉션으로는 도저히 흉내낼 수 없는 메모리 관리의 세계가 펼쳐집니다.
그럼 첫번째 글을 마치기 전에 간단하게 C++의 기본 입출력 예제를 한번 보고 가겠습니다.
#include <iostream>
using namespace std;
int main() {
char name[20];
cin >> name;
cout << name << "입니다. 만나서 반갑습니다." << endl;
}
한 줄씩 살펴보겠습니다.
1) 첫줄 <iostream>은 입력과 출력을 위한 기본 라이브러리의 인클루드 문입니다.
2) using namespace std;는 네임스페이지를 지정하는 문장인데, 네임스페이스란 라이브러리 함수나 전역변수의 이름이 충돌하지 않게 경계를 막아주는 역할을 합니다. 이건 좀 어려운 얘기지만 C의 라이브러리와 C++의 라이브러리가 이름이 충돌하는 경우가 있어 이것을 막아주기 위해 이 문장을 넣어주어야 합니다.
3) cin >> name; 이 문장은 기본입력스트림(키보드 입력)에서 들어온 입력을 name에 넣으라는 명령입니다. >>는 입력을 변수의 타입에 맞게 차례로 읽어주는 역할을 합니다. C 언어로 하면 scanf("%s", name);에 대응합니다. C++은 따로 타입이 문자열인지 정수인지 지정해 주지 않아도 변수의 타입에 맞게 다음 입력을 읽어 저장해 줍니다. 여기서는 %s의 경우와 같이 공백 문자가 나올 때까지 읽어 name에 저장해 줍니다. char* 문자열 배열의 사용은 C와 동일하다고 보면 됩니다. >> 연산은 차례로 연결하여 붙일 수 있어서 cin >> name >> age >> address; 처럼 여러 변수에 연속하여 읽어들이는 것이 가능합니다. 이때 각 변수의 타입에 맞게 토큰을 잘라서 입력해 줍니다.
4) cout << name << "입니다..." << endl; 부분은 출력 문장입니다. 역시 기본출력스트림(콘솔창)으로 << 다음에 오는 것들을 차례로 내보냅니다. 이 때도 해당 변수와 값의 타입에 맞게 콘솔창에 보여줍니다. << endl;은 줄바꿈을 넣으라는 명령입니다. 환경에 따라 적절하게 줄바꿈을 출력해 주는 역할을 합니다. << '\n';과 같다고 보면 되지만 endl을 쓰는 것이 더 좋다고 볼 수 있습니다.
'C++ << C & Java' 카테고리의 다른 글
C++ 클래스 예제 (2) - 자바 코드를 C++로 바꾸기 - Store 클래스 (0) | 2019.04.05 |
---|---|
C++ 객체 변수와 객체의 생성 및 소멸 (0) | 2019.04.01 |
C++의 참조형 (0) | 2019.03.28 |
C++에서 출력 포매팅 (0) | 2019.03.28 |
C++ 클래스 맛보기 (0) | 2019.03.28 |
- Total
- Today
- Yesterday
- Camel Style
- format
- indexof
- typedef
- Iterator
- contains
- 콜렉션
- 이터러블
- sort key
- rust
- zip
- follow
- Lazy evaluation
- python exercise
- contentEquals
- APPEND
- 이터레이터
- 스트링 +
- 지연계산
- ToString
- max
- 동적바인딩
- 자바regex
- comparable
- TypeError
- CompareTo
- C++ 클래스
- python example
- 패턴
- 스트링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |