본문 바로가기
프로그래밍_개발/CPP

C++ 개요

by Raffin 2021. 3. 10.
반응형
SMALL

C++

C언어의 절차 지향적 언어 특성을 보유하며, 클래스를 사용하는 객체 지향적 언어로도 사용되는 언어이다.


C++ 이란?

C++은 기존의 C언어에서 여러가지 기능을 추가해서 만들어진 프로그래밍 언어다.

C언어의 절차지향적 특징을 가져왔으며, Simula에서 클래스를 사용하는 객체 지향적 언어의 특징을 가져왔다.

템플릿으로 대변되는 일반화 프로그래밍 방식의 언어이기도 하다.

C++은 C언어를 토대로 만들어진 언어이기때문에, 기존 C 표준 라이브러리를 사용할 수 있다.

 

C++은 타입, 연산자, 제어문, 포인터 등을 C언어에서 가져왔기 때문에 C언어에 대한 기초를 알고 있으면 좋다.

 

하지만 C++은 절차 지향적 프로그래밍 습관에서 벗어날 필요가 있다.

C언어부터 반드시 배울 필요는 없으며, C++ 수업만으로도 충분히 학습할 수 있다.


C++의 역사

C++은 C언어가 개발된 벨 연구소의 비야네 스트롭스트룹(Bjarne Stroustrup)에 의해서 개발된다.

1979년 비야네 스트롭스트룹은 개체지향적 언어인 Simula의 개념을 C언어에 추가하여 "C with Classes"라는 이름으로 새로운 언어를 발표했으며, 이후 1984년에 증가 연산자(++)의 도입으로부터 C언어의 확장판이라는 의미를 담아 C++이라는 이름으로 개정하게된다.


C++의 탄생 배경

1970년대 개발된 C언어와 파스칼 등, 모두 1980년대에는 절차지향적, 구조적 프로그래밍 언어로써 여러방면에서 사용되었다.

이러던 와중, 새로운 프로그래밍 방식인 객체 지향 프로그래밍(OOP, Object-Oriented Programming)의 개념이 스몰토크(Smalltalk)나 에이다(Ada) 등의 언어를 통해 대중에게 알려지게 되었다.

이때 벨 연구소의 비야네 스트롭스트룹은 프로그래머이 더 쉽게 유용한 프로그램을 만들 수 있는 언어를 개발하고자 했다.

그래서 기존 C언어에 객체 지향 프로그램의 클래스 개념만을 추가하여 만들어 진 언어가 초기의 C++이다.


C++의 특징

  1. 절차 지향적이며 구조적인 프로그래밍 언어

  2. 객체 지향 프로그래밍 언어

  3. 일반화 프로그래밍 언어

이렇듯 C++은 세 가지의 프로그래밍 방식을 모두 지원하기때문에, 다양한 방식으로 프로그램을 작성할 수 있다.

또한, 다양한 시스템에서의 프로그램을 지원하는 유용하고 강력한 클래스 라이브러리들이 아주 많이 제공된다.

하지만 C++은 다양한 방식을 지원하는 점이 프로그래머 측면에서는 그 기능을 모두 배워야하는 부담으로 작용하기도 한다.


C++ 표준

C++에 대한 표준은 ANSI(American National Standards Institute)와 ISO(International Organization for Standardization)에서 표준화 작업을 진행하게 되었다.

1998년 첫 C++ 국제 표준인 ISO /IEC 14882:1998이 제정되며, 이 표준을 C++98이라고 부르게 된다.

이후 2003년에 C++98에서 단순한 기술적 개정만을 진행한 ISO/IEC 14882:2003이 공개되었다.

2011년에는 많은 언어적 특성이 추가된 ISO/IEC 14882:2011이 발표되며, 이 표준을 C++11이라고 부르게 된다.

이후 C++의 사소한 버그 수정 및 약간의 기술적 개선을 진행하여 2014년에 공개되었다.

2017년 ISO/IEC 14882:2017이 제정되었으며, 현재 C++20이 제정되었으나, C++20 표준에 다 반영되지 못한 내용도 다음 표준에 포함될 예정이라고 한다. 해당 기능 대부분이 C++TR2 제안서에 이미 언급되어있는 사양이라는 특징이 있다.

반응형

댓글