C++ 프로그래밍 언어: 개요와 핵심 특징
C++은 정적 타입, 컴파일 방식, 범용, 대소문자 구분, 자유 형식의 프로그래밍 언어로, 절차적, 객체 지향, 제네릭 프로그래밍을 지원합니다.
C++은 고급 언어와 저급 언어의 특징을 모두 갖추고 있어 중급 언어(middle-level)로 간주됩니다.
C++은 1979년 벨 연구소의 비야네 스트롭스트룹(Bjarne Stroustrup)이 C 언어의 확장판으로 개발을 시작했으며, 원래 'C with Classes'라는 이름으로 불리다가 1983년 C++로 이름이 변경되었습니다.
C++은 C의 상위 집합(superset)으로, 사실상 모든 합법적인 C 프로그램은 합법적인 C++ 프로그램이기도 합니다.
참고 − 프로그래밍 언어에서 정적 타이핑이란 타입 검사가 런타임이 아닌 컴파일 타임에 수행됨을 의미합니다.
객체 지향 프로그래밍
C++은 객체 지향 프로그래밍을 완전히 지원하며, 객체 지향 개발의 네 가지 기둥을 포함합니다.
- 캡슐화 (Encapsulation)
- 데이터 은닉 (Data hiding)
- 상속 (Inheritance)
- 다형성 (Polymorphism)
표준 라이브러리
표준 C++은 세 가지 중요한 부분으로 구성됩니다.
핵심 언어: 변수, 데이터 타입, 리터럴 등 모든 빌딩 블록을 제공합니다.
C++ 표준 라이브러리: 파일, 문자열 등을 조작하는 풍부한 함수 세트를 제공합니다.
표준 템플릿 라이브러리(STL): 데이터 구조 등을 조작하는 풍부한 메서드 세트를 제공합니다.
ANSI 표준
ANSI 표준은 C++의 이식성을 보장하기 위한 것입니다. 즉, 마이크로소프트 컴파일러용으로 작성한 코드가 맥, 유닉스, 윈도우, 알파 시스템의 컴파일러에서도 오류 없이 컴파일되도록 합니다.
ANSI 표준은 오랫동안 안정적으로 유지되어 왔으며, 모든 주요 C++ 컴파일러 제조사가 이를 지원합니다.
C++ 학습
C++을 배울 때 가장 중요한 것은 개념에 집중하는 것입니다.
프로그래밍 언어를 배우는 목적은 더 나은 프로그래머가 되는 것입니다. 즉, 새로운 시스템을 설계하고 구현하는 데 더 효과적이 되고, 기존 시스템을 유지보수하는 데 더 능숙해지는 것입니다.
C++은 다양한 프로그래밍 스타일을 지원합니다. 포트란, C, 스몰토크 등의 스타일로 어떤 언어로든 작성할 수 있습니다. 각 스타일은 런타임과 공간 효율성을 유지하면서 각자의 목적을 효과적으로 달성할 수 있습니다.
C++의 용도
C++은 본질적으로 모든 애플리케이션 도메인에서 수십만 명의 프로그래머들이 사용하고 있습니다.
C++은 실시간 제약 하에서 하드웨어를 직접 조작해야 하는 디바이스 드라이버 및 기타 소프트웨어를 작성하는 데 널리 사용됩니다.
C++은 기본 개념을 성공적으로 가르칠 만큼 깔끔하기 때문에 교육과 연구에도 널리 사용됩니다.
애플 매킨토시나 윈도우 실행 PC를 사용해 본 사람이라면 누구나 간접적으로 C++을 사용해 본 셈입니다. 이들 시스템의 주요 사용자 인터페이스가 C++로 작성되었기 때문입니다.