"C++"의 두 판 사이의 차이
(→단점) |
|||
1번째 줄: | 1번째 줄: | ||
+ | == 개요 == | ||
'''C++'''(C plus plus)은 1983년 [[덴마크]] 출신의 [[비야네 스트롭스트룹]](Bjarne Stroustrup)이 미국 [[AT&T]]의 [[벨 연구소]] 시절에 기존의 [[C 언어]]기능을 확장하여 개발한 [[프로그래밍 언어]]이다. 문법은 그대로 유지하고, [[객체 지향 프로그래밍]](OOP)의 개념을 도입했다. '''씨 플러스 플러스''' 또는 간략히 '''씨뿔뿔'''이라고 읽는다. C 언어에서 D 언어가 아닌 C++ 언어가 된 이유는 C 언어를 바탕으로 필요한 부분만 향상됐기 때문이다. | '''C++'''(C plus plus)은 1983년 [[덴마크]] 출신의 [[비야네 스트롭스트룹]](Bjarne Stroustrup)이 미국 [[AT&T]]의 [[벨 연구소]] 시절에 기존의 [[C 언어]]기능을 확장하여 개발한 [[프로그래밍 언어]]이다. 문법은 그대로 유지하고, [[객체 지향 프로그래밍]](OOP)의 개념을 도입했다. '''씨 플러스 플러스''' 또는 간략히 '''씨뿔뿔'''이라고 읽는다. C 언어에서 D 언어가 아닌 C++ 언어가 된 이유는 C 언어를 바탕으로 필요한 부분만 향상됐기 때문이다. | ||
== 특징 == | == 특징 == | ||
− | === | + | === 장점 === |
+ | * 간결성 | ||
예약어가 적고 제공하는 연산자가 다양하기 때문에 짧은 명령으로 많은 작업을 할 수 있다. | 예약어가 적고 제공하는 연산자가 다양하기 때문에 짧은 명령으로 많은 작업을 할 수 있다. | ||
− | + | * 효율성 | |
C++ 언어가 기능상 C 언어보다 우위에 있지만, C 언어보다 복잡하고 생성된 프로그램 자체가 크고 느린 탓에 소규모 프로젝트나 성능이 중요시되는 분야에는 적합하지 않다. | C++ 언어가 기능상 C 언어보다 우위에 있지만, C 언어보다 복잡하고 생성된 프로그램 자체가 크고 느린 탓에 소규모 프로젝트나 성능이 중요시되는 분야에는 적합하지 않다. | ||
− | + | * 이식성 | |
대부분의 플랫폼에서 C++ 언어를 사용할 수 있으므로 재컴파일만 하면, 다른 운영체제에서 사용이 가능하다. | 대부분의 플랫폼에서 C++ 언어를 사용할 수 있으므로 재컴파일만 하면, 다른 운영체제에서 사용이 가능하다. | ||
− | + | * 범용성 | |
응용프로그램을 개발할 수 있는 모든 분야에서 활용할 수 있다. | 응용프로그램을 개발할 수 있는 모든 분야에서 활용할 수 있다. | ||
− | == 단점 == | + | === 단점 === |
− | + | *[[가비지 컬렉션]](Garbage Collection) | |
C++ 언어에서는 메모리 영역을 사용한 뒤에는 더는 그 영역에 접근하지 않아 메모리 공간이 낭비된다. 이렇게 낭비된 공간을 '''가비지'''라고 하고, 이러한 가비지들이 쌓이면 프로그램에 심각한 오류를 발생시킨다. 그 가비지를 없애주는 역할을 하는 것이 '''가비지 컬렉터'''(Garbage Collector)이다. 하지만 C 언어계열에서는 이 가비지 컬렉터가 없기 때문에 개발자가 직접 구현해주어야 한다. | C++ 언어에서는 메모리 영역을 사용한 뒤에는 더는 그 영역에 접근하지 않아 메모리 공간이 낭비된다. 이렇게 낭비된 공간을 '''가비지'''라고 하고, 이러한 가비지들이 쌓이면 프로그램에 심각한 오류를 발생시킨다. 그 가비지를 없애주는 역할을 하는 것이 '''가비지 컬렉터'''(Garbage Collector)이다. 하지만 C 언어계열에서는 이 가비지 컬렉터가 없기 때문에 개발자가 직접 구현해주어야 한다. | ||
− | + | *복잡성 | |
C++ 언어는 C 언어의 '''확장판'''이다. C언어와 다른 점은 [[템플릿]], 예외, [[네임스페이스]], 자동 메모리 관리 등 C 언어에서 기본적으로 제공하지 않는 기능이 추가되었다는 점이다. 하지만 이러한 기능들을 많이 사용하는 것은 소스 코드의 복잡성을 높이고, 결과를 통제하기 어렵게 만든다. 일부 기업들은 C++ 언어의 복잡성 때문에 C 언어를 고수하기도 한다. | C++ 언어는 C 언어의 '''확장판'''이다. C언어와 다른 점은 [[템플릿]], 예외, [[네임스페이스]], 자동 메모리 관리 등 C 언어에서 기본적으로 제공하지 않는 기능이 추가되었다는 점이다. 하지만 이러한 기능들을 많이 사용하는 것은 소스 코드의 복잡성을 높이고, 결과를 통제하기 어렵게 만든다. 일부 기업들은 C++ 언어의 복잡성 때문에 C 언어를 고수하기도 한다. | ||
2019년 6월 25일 (화) 11:51 판
개요
C++(C plus plus)은 1983년 덴마크 출신의 비야네 스트롭스트룹(Bjarne Stroustrup)이 미국 AT&T의 벨 연구소 시절에 기존의 C 언어기능을 확장하여 개발한 프로그래밍 언어이다. 문법은 그대로 유지하고, 객체 지향 프로그래밍(OOP)의 개념을 도입했다. 씨 플러스 플러스 또는 간략히 씨뿔뿔이라고 읽는다. C 언어에서 D 언어가 아닌 C++ 언어가 된 이유는 C 언어를 바탕으로 필요한 부분만 향상됐기 때문이다.
특징
장점
- 간결성
예약어가 적고 제공하는 연산자가 다양하기 때문에 짧은 명령으로 많은 작업을 할 수 있다.
- 효율성
C++ 언어가 기능상 C 언어보다 우위에 있지만, C 언어보다 복잡하고 생성된 프로그램 자체가 크고 느린 탓에 소규모 프로젝트나 성능이 중요시되는 분야에는 적합하지 않다.
- 이식성
대부분의 플랫폼에서 C++ 언어를 사용할 수 있으므로 재컴파일만 하면, 다른 운영체제에서 사용이 가능하다.
- 범용성
응용프로그램을 개발할 수 있는 모든 분야에서 활용할 수 있다.
단점
- 가비지 컬렉션(Garbage Collection)
C++ 언어에서는 메모리 영역을 사용한 뒤에는 더는 그 영역에 접근하지 않아 메모리 공간이 낭비된다. 이렇게 낭비된 공간을 가비지라고 하고, 이러한 가비지들이 쌓이면 프로그램에 심각한 오류를 발생시킨다. 그 가비지를 없애주는 역할을 하는 것이 가비지 컬렉터(Garbage Collector)이다. 하지만 C 언어계열에서는 이 가비지 컬렉터가 없기 때문에 개발자가 직접 구현해주어야 한다.
- 복잡성
C++ 언어는 C 언어의 확장판이다. C언어와 다른 점은 템플릿, 예외, 네임스페이스, 자동 메모리 관리 등 C 언어에서 기본적으로 제공하지 않는 기능이 추가되었다는 점이다. 하지만 이러한 기능들을 많이 사용하는 것은 소스 코드의 복잡성을 높이고, 결과를 통제하기 어렵게 만든다. 일부 기업들은 C++ 언어의 복잡성 때문에 C 언어를 고수하기도 한다.
활용
![](/images/thumb/4/46/%EB%B9%84%ED%8A%B8%EC%BD%94%EC%9D%B8_%EA%B8%80%EC%9E%90.png/300px-%EB%B9%84%ED%8A%B8%EC%BD%94%EC%9D%B8_%EA%B8%80%EC%9E%90.png)
비트코인
2009년 사토시 나카모토(Satoshi Nakamoto)라는 가명을 사용하는 프로그래머는 C++ 프로그래밍 언어를 사용하여, 블록체인 기반의 암호화폐인 비트코인을 개발했다. 그는 2009년 1월 10일 C++ 언어로 작성한 비트코인 소스 코드를 공개했다. 비트코인 소스 코드는 이메일로 무료 오픈소스 방식으로 배포되었다.[1]
각주
- ↑ 사토시 나카모토가 비트코인 프로그램 소스를 처음 배포한 이메일 : "Bitcoin v0.1 released", 2009-01-10 01:05:49 UTC