티스토리 뷰
#include <iostream>
using namespace std;
네임스페이스(namespace)
네임스페이스란 이름이 기억되는 영역을 뜻하며, 이름이 소속된 공간을 의미한다.
C++에서는 변수, 함수, 구조체, 클래스 등을 서로 구분하기 위해서 식별자(identifier)로 다양한 이름을 사용한다.
네임스페이스는 C++ 프로그램을 작성할 때 발생하는 이름에 대한 충돌을 방지해 주는 방법을 제공한다.
C++ 표준 라이브러리의 모든 기능은 std라는 namespace 안에 있다
cf)
[C++] using namespace std를 사용하면 안되는 이유
global로 namespace를 선언한다면 namespace에 선언된 함수나 다른 요소들의 이름이 겹칠 수 있기 때문에 뜻하지 않았던 오류를 발생시킬 수 있다.
iostream
iostream은 C++에 있는 입출력을 위한 헤더 파일이다. 이는 C++ 표준 라이브러리의 하나이다.
C++에서는 iostream 헤더 파일에 표준 입출력 클래스를 정의하고 있다. 표준 입출력을 담당하는 함수들이 모두 객체로 정의되어 있다.
헤더와 라이브러리
헤더 | 라이브러리 |
함수를 선언 | 헤더파일에 선언된 함수를 정의 |
.h (libft.h) | .lib, .a 등 (libft.a) |
human readable | non human readable |
작성자가 #include로 직접 포함 | 컴파일러가 필요한 라이브러리 링크 |
CPP 표준입출력
#include <iostream>
int main() {
std::cout << "Hello, World!!" << std::endl;
return 0;
}
스트림(stream)
C++ 프로그램은 파일이나 콘솔의 입출력을 스트림(stream)이라는 흐름을 통해 다룬다.
스트림이란 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름을 의미한다.
즉, 스트림은 운영체제에 의해 생성되는 가상의 연결 고리를 의미하며, 중간 매개자 역할을 한다.
그래서 사용자는 입출력 장치의 종류와 무관하게 스트림을 통해 편리하게 입출력을 사용할 수 있다.
버퍼(buffer)
스트림은 내부에 버퍼(buffer)라는 임시 메모리 공간을 가지고 있고, 버퍼를 이용하면 입력과 출력을 좀 더 효율적으로 처리할 수 있다.
대부분의 C++ 프로그램은 사용자가 Enter 키를 누르면 입력 버퍼를 비우고(입력), 개행 문자를 전달받으면 출력 버퍼를 비운다.(출력)
'42 > cpp' 카테고리의 다른 글
[C++] NULL 포인터로 객체의 함수가 호출되는 이유 (0) | 2021.07.21 |
---|---|
생성자, 복사생성자, 복사대입연산자, 소멸자 (0) | 2021.05.27 |
참조자 (0) | 2021.05.26 |
메모리구조, 정적할당과 동적할당 (0) | 2021.05.25 |
객체지향, 접근지정자 (0) | 2021.05.25 |