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 |