C++

위키백과 ― 우리 모두의 백과사전.

C++
패러다임  객체 지향
발표 연도  1983
설계자  비야네 스트롭스트룹
영향을 받은 언어  C
영향을 준 언어  C 샤프

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)
>>
오른쪽 이동
<<
왼쪽 이동
  • C 선행 연산자
가장 높음
( ) [ ] −> .
 ! ~ ++ –– (type) * & sizeof
* / %
+ −
<< >>
< <= > >=
== !=
&
^
|
&&
||
 ?:
= += −=*= /=]
,
가장 낮음
이 문서는 컴퓨터에 관한 토막글입니다. 서로의 지식을 모아 알차게 문서를 완성해 갑시다.
위키책에는 이 글과 관련된 글이 있습니다.
C 플러스 플러스