C++란?
C++는 '씨피피', '씨쁠쁠' 또는 '씨쁠'이라고 부르는 객체 지향 및 멀티 패러다임을 지원하는 프로그래밍 언어입니다.
C언어에는 없는 객체지향 프로그래밍을 지원하기 위한 C언어의 확장판으로 생각해도 무방할 것입니다.
이렇게 C를 기반으로 개발된 언어로 C언어의 기능과는 부분적으로 일치하는 부분 집합이라 합니다.
(C++가 C언어와는 관계없이 개발되었다면 D라는 이름을 붙여지지 않았을까 생각합니다.)
흔히 C++를 단순히 객체지향 언어라고 하는 것에는 모호한 부분이 있습니다.
C++는 객체지향 프로그래밍 패러다임과 동등한 강도로 일반화 프로그래밍 패러다임을 강조한다 합니다.
간단하게 설명하면 기존 C문법의 절차지향 프로그래밍, 클래스가 대표하는 객체지향 프로그래밍 그리고 템플릿이 대표하는 일반화 프로그래밍까지 이렇게 세 기둥으로 지지되는 언어라고 합니다.
C++의 특징
C++의 가장 큰 특징으로 보면 객체지향과 멀티 패러다임을 지원한다는 점 일 것입니다.
기존 C언어와 C++의 차이점을 말할 때 '절차지향'과 '객체지향'이 빠지지 않습니다.
이는 기존 C언어와 가장 큰 차이점이기도 합니다.
예를 들면 C++는 객체지향 프로그래밍 언어이니 당연히 Java와 비슷하게 코딩하는 것이 가능합니다.
(하지만 Java와 비슷하게 코딩을 하신다면 굉장히 어정쩡한 프로그램 코드를 만나실 수 있습니다.)
또한 멀티 패러다임을 지원하여 다양한 프로그래밍 언어의 여러 가지 기능을 모두 가지고 있다는 점입니다.
그러다 보니 사용 방법에 따라서 멋진 프로그램이 될 수도, 또는 끔찍한 혼종 프로그램이 될 수도 있습니다.
캡슐화 역시 C와의 C++가 가지는 특징이라할 수 있습니다.
그 외에도 캡슐화, 연산자 및 함수 오버로딩, 예외처리 등의 기능을 특징으로 볼 수 있습니다.
또한 함수 중간중간에 변수 선언이 가능하다는 것이 저는 많이 편리했습니다.
C++에 대해서
사실 C++를 익히는 것은 어렵습니다.
다른 언어를 전문적으로 사용하시는 분이라 할지라도 C++의 경우는 까다로운 부분이 많습니다.
따라서 프로그래머의 스킬에 따라 프로그램의 성능 또한 극심하게 갈리는 언어입니다.
그만큼 어렵지만 스페셜리스트가 된다면 최고의 무기가 되지 않을까 합니다.
참조: https://ko.wikipedia.org/wiki/C%2B%2B
'Programming' 카테고리의 다른 글
[C] C언어, 특징과 장단점 (0) | 2020.01.19 |
---|