1. C++ 언어는 다음과 같이 네 가지 특징을 갖는다.

- C언어를 기본으로 확장한 언어이다.
- 데이터를 추상화를 제공한다.
- 객체 지향 프로그래밍(OOP)을 제공한다.
- 일반화 프로그램을 지원한다.

2. 용어 해설
- 객체(Object) : 우리가 살고 있는 실세계에 존재하는 모든 것, 우리의 생각이나 아이디어 등에 해당되는 것으로써
  속성(데이터)과 행위(함수 또느 프로시저, 메소드)를  가지는 것.
- 클래스(class) : 프로그래밍에서 객체를 표현하기 위한 수단
- 인스턴스(instance) : 프로그램에서 클래스에 의해 생성되는 개개의 객체

3. 절차적 프로그래밍 vs 모듈화 프로그래밍
* 절차적 프로그래밍(C 언어)
- 작성할 문제를 분석하고 그 문제에 가장 적합한 알고리즘을 사용하여 단계별로 구현하는 프로그램 방식
- 프로시저 중심(= 함수 중심)
- 실행흐름을 강조하기 때문에 동일한 구조로 실행흐름을 가질 수 있는 부분을 함수로 먼저 정의해 놓은 후,
  그 함수를 호출하여 실행된 함수의 결과를 반환받는 구조로 프로그램을 작성
- 한번 작성된 프로그램은 확장하여 재사용하기 어려움.

* 모듈화 프로그래밍(C++)
- 우리가 살고 있는 실세계의 문제를 직접 표현할 수 있도록 구현하는 프로그램 방식
- 데이터 구성 중심(= 객체 중심)
- 여러 가지 요소들을 데이터와 인터페이스를 포함하는 '객체 단위'로 분리하여 정의하고 각각의 객체 간에
 '메시지'를 전달하여 처리하는 구조로 프로그램을 작성
- 객체 단위로 구현된 프로그램은 확장이 용이하여 재사용하기 쉽다.
Posted by RoaZium