C++
위키백과 ― 우리 모두의 백과사전.
| 패러다임 | 객체 지향 |
|---|---|
| 발표 연도 | 1983년 |
| 설계자 | 비야네 스트롭스트룹 |
| 주요 구현체 | 마이크로소프트 비주얼 C++, GCC, 볼랜드 C++ 빌더, 인텔 C++ 컴파일러 |
| 영향을 받은 언어 | C, 시뮬라, Ada 83, ALGOL 68, CLU, ML |
| 영향을 준 언어 | C 샤프 |
| 웹사이트 | www.ITBank-Love.com |
C++는 AT&T 벨 연구소의 비야네 스트롭스트룹이 1983년 발표하여 발전한 프로그래밍 언어이다. C 언어의 문법을 대부분 사용할 수 있으며, 객체지향성이 더해진 C 언어의 확장형이라고 생각할 수도 있다.
목차 |
[편집] 특징
C 언어에 객체지향 프로그래밍을 지원하기 위한 내용이 덧붙여진 것이라고 할 수도 있지만, 애초부터 객체지향을 염두에 두고 만들어진 언어와는 다르게, 단지 더 좋은 C 언어로서 수속형 언어로 취급하기도 한다. 초기의 C++은 C 위에 놓인 트랜스레이터로 구현되었다. 즉, C++ 프로그램을 일단 C 프로그램으로 변환하고 나서 C 컴파일러로 컴파일하는 식이었고 따라서 C 언어에 대해 상위 호환성을 갖는 언어였다.
그 후, C 언어의 표준 규격이 바뀔 때 const 수식 등 C++의 기능이 C 언어에 받아들이기도 했다. 현재 C 언어와 C++와의 사이에는 엄격한 호환성은 없다. 특히 C99의 출현으로 C 언어와의 호환성은 완전하게 없어져 버렸다. 현재는 C와 C++가 명확한 구별 없이 혼재되어 사용되는 컴파일러가 대부분이다.
다음과 같은 다양한 기능을 가지고 있어 C++ 언어의 표준 규격은 몹시 복잡하다. C++ 표준의 모든 사항을 완전하게 지원하는 컴파일러는 현재 손꼽을 정도이다.
- 다중 상속
- 템플릿
- 연산자 오버로드
- 예외 처리
- 실행시 형 식별
덧붙여 예부터 전해 내려온 절차적인 성격도 그대로 남아 "만능" 설계로, 유연함과 강력함은 다른 언어에 비할 바가 아니지만, 복잡한 언어가 되고 말았다. 이런 점 때문에 보다 객체지향성을 강화하여,만능설계를 지향하기보다는 단순한 설계를 목표로 한 새로운 언어들인 Java 언어, D 언어 등이 나오기도 했다.
[편집] 예제
[편집] 헬로 월드 프로그램(Hello world program)
C++ 표준 라이브러리 스트림 기능을 사용하여 표준 출력을 통해 Hello, world!를 출력한다.
#include <iostream> // std::cout을 제공 using namespace std; // std namespace를 사용할 수 있게 함 int main() { cout << "Hello, world!" << endl; return 0; }
[편집] 함께 보기
| 위키책에는 이 글과 관련된 글이 있습니다. |
|
|
|
|---|---|
| 라이브러리 | C 표준 라이브러리 • GNU C 라이브러리 • dietlibc • uClibc • Newlib • EGLIBC |
| 파생 언어 | C++ • 오브젝티브-C • D (프로그래밍 언어) • C# • Cyclone • JAVA • C++/CLI |
|
|
|
|---|---|
| 산업용 | 델파이 · 루비 · 리스프 · 비주얼 베이직 · 스몰토크 · 스킴 · 어셈블리 · 얼랑 · 에이다 · 오브젝티브-C · 자바 · 자바스크립트 · 코볼 · 파이썬 · Perl · 포트란 · 프롤로그 · 하스켈 · ABAP · AWK · C · C++ · C# · ML · PHP · PL/SQL · SAS · sh · VB.NET |
| 교육용 | 로고 · 에펠 · 파스칼 |
| 역사적 의미가 있는 언어 |
베이직 · 시뮬라 · 알골 · 클리퍼 · 파워빌더 · APL · MUMPS · PL/I |
![]() |
이 글은 소프트웨어에 관한 토막글입니다. 서로의 지식을 모아 알차게 문서를 완성해 갑시다. |
