C++ 언어의 개발
- C++는 1980년대 초에 AT&T 벨연구소의 Bjarne Stroustrup에 의하여 개발
- C++는 C언어를 유지, 확장한 것
- C with Classes -> C++
- C++는 C언어에 클래스 개념을 추가하고 이어서 가상 함수, 연산자 중복 정의, 다중 상속, 템플릿, 예외 처리 등의 기능이 차례로 추가

C++의 설계 철학
- 엄격한 타입 검사, 범용 언어, 효율적, 이식성
- 여러가지 프로그래밍 스타일을 지원(절차 지향 프로그래밍, 데이터 추상화, 객체 지향 프로그래밍, 일반화 프로그래밍)
- 프로그래머가 자유롭게 선택할 수 있도록 설계
- 최대한 C와 호환
- 플랫폼에 의존적이거나 일반적이지 않은 특징은 제거

C++ 특징
- 클래스(class) : 클래스를 이용하여 하나의 객체의 속성과 동작들을 한곳으로 모아서 정의할 수 있다.
- 상속(inheritance) : 클래스를 상속받아서 기존의 코드를 재사용할 수 있다.
- 연산자 중복(operator overloading) : 대상에 따라서 동일한 연산자로 새로운 연산을 정의할 수 있다.
- 함수 중복(function overloading) : 매개 변수만 다르면 동일한 이름의 함수를 여러 개 만들 수 있다.
- new와 delete 연산자 : 동적 메모리 할당과 해제를 담당하는 연산자이다.
- 제네릭(generics) : 클래스 정의를 자료형에 상관없이 재사용하는 기술이다.

C++의 장점
- C++로 작성된 프로그램은 속도가 빠르다.
- C++은 멀티패러다임 프로그래밍을 지원한다. 즉 절차지향, 객체 지향, 제네릭 방법을 동시에 지원한다.
- 하드웨어에 접근할 수 있다.
- 메모리를 효율적으로 사용한다.
- C언어 프로그램을 그냥 가져다가 사용할 수 있다.
- 고성능의 게임이나 인공지능, 장치 드라이버에 적합하다.

절차 지향 프로그래밍(procedural programming) : 기본적으로 프로시저를 사용하여 프로그램을 작성하는 프로그래밍 방식

객체 지향  프로그래밍(Object-Oriented Programming) : 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 객체라는 기본 단위로 나누고 이 객체들의 상호작용으로 서술하는 방식 (객체지향프로그래밍에서는 데이터와 알고리즘이 묶여 있다.)

 

<어서와 C++는 처음이지!> 천인국 인피니티북스

'C++' 카테고리의 다른 글

난수  (0) 2020.10.09
연산자  (0) 2020.10.09
변수, auto, 입력과출력  (0) 2020.10.09
Hello Wolrd 출력과 분석  (0) 2020.10.09
C++ 개발 과정과 visual studio 설치 및 사용법  (0) 2020.10.05

+ Recent posts