위키백과 ― 우리 모두의 백과사전.
C++는 AT&T 벨 연구소의 비야네 스트롭스트룹이 1983년 발표하여 발전한 프로그래밍 언어이다. C 언어의 문법을 대부분 사용할 수 있으며, 객체지향성이 더해진 C언어의 확장형이라고 생각할 수도 있다.
[편집] 특징
C 언어에 객체지향 프로그래밍을 지원하기 위한 내용이 덧붙여진 것이라고 할 수도 있지만, 애초부터 객체지향을 염두에 두고 만들어진 언어와는 다르게, 단지 더 좋은 C 언어로서 수속형 언어로 취급하기도 한다. 초기의 C++은 C 위에 놓인 트랜스레이터로 구현되었다. 즉, C++ 프로그램을 일단 C 프로그램으로 변환하고 나서 C 컴파일러로 컴파일하는 식이었고 따라서 C언어에 대해 상위 호환성을 갖는 언어였다.
그 후, C 언어의 표준 규격이 바뀔 때 const 수식 등 C++의 기능이 C 언어에 받아들이기도 했다. 현재 C 언어와 C++와의 사이에는 엄격한 호환성은 없다. 특히 C99의 출현으로 C 언어와의 호환성은 완전하게 없어져 버렸다.
다음과 같은 다양한 기능을 가지고 있어 언어의 규격은 몹시 복잡하다. 이 모든 사항을 완전하게 지원하는 컴파일러는 현재 손꼽을 정도이다.
- 다중 상속
- 템플릿
- 연산자 오버로드
- 예외 처리
- 실행시 형 식별
덧붙여 예부터 전해 내려온 절차적인 성격도 그대로 남아 "만능" 설계로, 유연함과 강력함은 다른 언어에 비할 바가 아니지만, 거대하고 난잡한 언어가 되어 버리고 말았다. 이런 점 때문에 보다 객체지향성을 강화하여 "만능"보다는 간략하고 말쑥한 설계를 목표로 한 새로운 언어인 Java 언어, D 언어 등이 나오기도 했다.
[편집] 헬로 월드 프로그램
헬로 월드 프로그램(Hello world program)은 C++ 표준 라이브러리 스트림 기능을 사용하여 어떠한 메시지를 표준 출력에 기록한다.
#include <iostream> // std::cout을 제공
int main() {
std::cout << "Hello, world!\n";
return 0;
}
[편집] 연산자
| 연산자 |
내용 |
|
-
|
빼기 |
|
+
|
더하기 |
|
*
|
곱하기 |
|
/
|
나누기 |
|
%
|
계수(정수) |
|
--
|
감소 |
|
++
|
증가 |
| 연산자 |
내용 |
|
>
|
보다 큼 |
|
>=
|
보다 크거나 같음 |
|
<
|
보다 적음 |
|
<=
|
보다 적거나 같음 |
|
==
|
같음 |
|
!=
|
같지 않음 |
|
&&
|
~와(과) |
|
||
|
또는 |
|
!
|
아님 |
| 연산자 |
내용 |
|
&
|
~와(과) |
|
|
|
또는 |
|
^
|
예외적 또는 (XOR) |
|
~
|
채움수 (NOT) |
|
>>
|
오른쪽 이동 |
|
<<
|
왼쪽 이동 |
| 가장 높음 |
| ( ) [ ] −> . |
| ! ~ ++ –– (type) * & sizeof |
| * / % |
| + − |
| << >> |
| < <= > >= |
| == != |
| & |
| ^ |
| | |
| && |
| || |
| ?: |
| = += −=*= /=] |
| , |
| 가장 낮음 |