다음 코드를 살펴봅시다.
#include <stdio.h>
int main(){
printf("Hello world!\n");
return 0;
}
C에서 Hello world!를 출력하기 위한 코드였습니다.
다음 코드를 살펴봅시다.
#include <iostream>
int main(){
std::cout << "hello world!" << std::endl;
return 0;
}
C++에서 Hello world!를 출력하기 위한 코드입니다.
각 코드의 첫 번째 줄을 보면 C언어는 stdio.h를 통해 표준입출력 함수에 접근하고, C++은 iostream을 통해 표준입출력 객체에 접근합니다.
두 번째 코드의 1번째 줄을 보면 iostream을 include합니다. 이처럼 C++에서는 I/O처리가 가능한 타입의 객체를 통해 Input/Output을 처리합니다.
iostream을 include하면 istream타입과 ostream타입을 쓸 수 있고, std:cin과 std::cout은 각각 istream/ostream타입의 객체입니다.
istream은 입력 스트림, ostream은 출력 스트림을 나타냅니다.
각 첫문자는 input의 i와 output의 o를 의미하고, 스트림이란 물리적인 입출력 장치에서의 입출력이 순서대로 이어지는 가상의 통로입니다.
ostream타입 객체는 왼쪽 피연산자에 ostream 객체, 오른쪽 피연산자의 메세지를 받는 '<<' 연산자를 사용하여
주어진 메세지를 출력한 ostream객체를 반환합니다, 그래서 << 연산자는 한 줄에서 여러개가 나타날 수 있습니다.
그리고 '<<'연산자는 출력할 메세지를 전달할 때, 조작자(manipulator)라고 불리는 특별한 메세지를 전달 할 수 있습니다.
예를 들어, std::endl 조작자는 현재 줄을 마치고 연관된 버퍼를 비우는 역할을 수행합니다.
istream타입 객체는 왼쪽 피연산자에 istream 객체, 오른쪽 피연산자에 데이터를 저장할 변수를 두는 '>>'연산자를 사용하여
데이터를 읽어오는 istream 객체를 반환합니다. 그래서 >> 연산자도 한 줄에서 여러개가 나타날 수 있습니다.
마지막으로 예제코드에 나타난 std는 표준 라이브러리에 정의된 네임스페이스의 이름입니다.
네임스페이스는 다른 곳에서 정의한 이름과 동일한 이름끼리 충돌하는 것을 막을 수 있고, 범위지정연산자인 :: 를 통해서 이용할 수 있습니다.
'C++' 카테고리의 다른 글
Primitivetypes - 기본 타입 (0) | 2019.02.26 |
---|---|
Basic statement (0) | 2019.02.24 |
C++ 개요 (0) | 2019.02.22 |
카테고리 개요 (0) | 2019.02.22 |