새소식

💻 Programming (프로그래밍)/C++

[C++] 객체지향적 cin, cout

  • -

C++ 언어를 처음 접한뒤 가장 먼저 사용했던 것은 cin과 cout 이였습니다.

처음에는 cin은 변수에 사용자입력값을 넣고, cout은 어떠한 값들을 출력해주는 용도구나~ 라고 지레 짐작하며 사용하곤 했는데요, 객체 지향적인 C++에서는 C의 printf()와 다르게 어떤 구조로 되어있는지 알아두면 응용도 이해하기 쉬울 듯 합니다.

 

Q) 객체 지향적 프로그래밍이란? OOP(Object-Oriented Programming)

A) 캡슐화(encapsulation), 상속(inheritance), 다형성(polymorphism) 의 개념이 담겨있는 프로그램 설계방법론이자, 어떠한 한 개념입니다.

 

초기 프로그래밍 방식인 절차적 프로그래밍과, 객체지향적 프로그래밍을 비교하자면,

 

절차적 프로그래밍은 "수제라면"  즉 재료를 준비하는 과정이 다 대부분 수제적인 느낌이 강합니다.
하지만 객체 지향적 프로그래밍은 "인스턴트 라면" 입니다.

 

즉 스프에 필요한 양념이 들어가있고, 건더기 스프에 채소가 들어가며, 면도 건면 혹은 기름에 튀긴 면으로 먹기 쉽게 조리되어서 물에 넣기만하고 끓이면 되는 느낌이죠, 이렇듯이 이러한 라면처럼 객체 즉 한덩어리 느낌으로 설계되어 우리들의 프로그래밍을 더욱 쉽게 할 수 있도록 도와줍니다.

 

 

Q) Cin 과 Cout은 어디에서 왔을까?

A) #include <iostream>에서 왔습니다.

iostream은 입출력을 위한 헤더 파일이고, C++의 표준 라이브러리이며, Input/Output Stream에서 이름을 따왔습니다.

또한 iostream은 자동적으로 <ios>, <streambuf>, <istream>, <ostream>, <iosfwd>등이 담겨 있습니다.

객체(오브젝트)들은 아래와 같이 사용 할 수 있습니다.

iostream object

 

Q) 그렇다면 Cin과 Cout도 객체인가요?

A) 네 맞아요, 이 포스팅에서 다루고싶은 내용입니다.

cin, cout은 a stream buffer의 input, output값인데요 입력값이 임시로 저장되어 있는 객체입니다

 

int n;
std::cin >> n; 

우선, cin이라는 객체에 사용자(키보드) 값이 입력값으로 들어갑니다. 이후 operator >> 을 통해 n이라는 변수에 넣어줍니다. 

 

int n = 3;
std::cout << n;

마찬가지로 n의 변수를 cout이란 객체에 담은 후 사용자(모니터)에게 3을 보여주는 것이죠.

 

 

 

추가로 while(cin >> n) 과 같은 반복문의 조건으로도 사용 할 수 있습니다.

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.