C++ Intro

C++ 소개

C++는 Bjarne Stroustrup이 1979년에 벨 연구소에서 개발한 프로그래밍 언어입니다. 이 언어는 C 언어를 기반으로 하여 객체 지향 프로그래밍(OOP) 기능을 추가함으로써 개발되었습니다. C++는 시스템 소프트웨어, 게임 개발, 실시간 시뮬레이션, 드라이버, 고성능 애플리케이션 등 다양한 분야에서 널리 사용되고 있습니다.

역사와 발전

  1. 1979년: Bjarne Stroustrup에 의해 개발 시작
  • C 언어의 효율성과 성능을 유지하면서도 고급 기능을 제공하는 새로운 언어 개발을 목표로 함.
  • 처음에는 “C with Classes”라는 이름으로 불림.
  1. 1983년: C++로 이름 변경
  • 객체 지향 프로그래밍 개념을 도입.
  • 클래스, 상속, 다형성 등 OOP 기능이 추가됨.
  1. 1985년: 첫 번째 상업적 릴리스
  • “The C++ Programming Language” 책이 출판됨으로써 C++의 개념과 사용법이 널리 알려짐.
  • C++ 컴파일러가 상용화되기 시작.
  1. 1990년대: 표준화 작업 시작
  • ANSI와 ISO에서 C++의 표준화를 위한 작업이 시작됨.
  • 1998년, 첫 번째 C++ 표준인 ISO/IEC 14882:1998(C++98)이 발표됨.
  1. 2011년: C++11 표준 발표
  • C++98 이후 약 13년 만에 큰 변화가 있는 표준 발표.
  • 자동 유형 추론(auto), 람다 표현식, 스마트 포인터, 범위 기반 for 루프, 새로운 표준 라이브러리 기능 등 여러 현대적인 기능이 추가됨.
  1. 2014년: C++14 표준 발표
  • C++11에서 발견된 문제와 불편함을 개선한 소규모 업데이트.
  • 제네릭 람다, 반환 유형 유추 등 기능 추가.
  1. 2017년: C++17 표준 발표
  • 파일 시스템 라이브러리, 병렬 알고리즘, std::optional, if constexpr 등 여러 새로운 기능이 추가됨.
  1. 2020년: C++20 표준 발표
  • 모듈, 코루틴, 콘셉트, 범위 등 대규모 기능 추가.
  • C++의 현대화를 가속화하는 주요 업데이트.

주요 특징

  1. 객체 지향 프로그래밍(OOP)
  • 클래스와 객체를 사용하여 코드의 재사용성과 확장성을 높임.
  • 상속, 다형성, 캡슐화 등의 OOP 개념을 지원.
  1. 저수준 메모리 제어
  • 포인터를 사용하여 메모리를 직접 관리할 수 있음.
  • 고성능 애플리케이션에서 유리.
  1. 템플릿
  • 제네릭 프로그래밍을 지원하여 코드의 재사용성을 극대화함.
  • 함수와 클래스 템플릿을 통해 다양한 데이터 타입을 처리.
  1. 표준 라이브러리(STL)
  • 알고리즘, 컨테이너, 반복자 등을 제공하는 강력한 표준 라이브러리.
  • 효율적인 데이터 구조와 알고리즘을 쉽게 사용할 수 있음.
  1. 다중 패러다임 지원
  • 절차 지향, 객체 지향, 제네릭, 함수형 프로그래밍 등을 혼합하여 사용할 수 있음.
  • 다양한 프로그래밍 스타일을 지원하여 유연한 코딩 가능.
  1. 성능
  • C 언어의 성능을 유지하면서도 고급 기능을 제공.
  • 시스템 프로그래밍 및 성능이 중요한 애플리케이션에서 많이 사용됨.

C++ 표준

C++ 표준은 ISO/IEC JTC1/SC22/WG21 위원회에 의해 관리됩니다. 주요 C++ 표준은 다음과 같습니다:

  1. C++98 (ISO/IEC 14882:1998)
  • 첫 번째 C++ 표준.
  • 객체 지향 프로그래밍과 템플릿 기능이 포함.
  1. C++03 (ISO/IEC 14882:2003)
  • C++98의 부가적인 수정판.
  • 주로 버그 수정과 문서 개선.
  1. C++11 (ISO/IEC 14882:2011)
  • 큰 변화와 새로운 기능이 추가된 표준.
  • 자동 타입 추론, 람다 표현식, 스마트 포인터, 병렬 처리 라이브러리 등.
  1. C++14 (ISO/IEC 14882:2014)
  • C++11의 개선판.
  • 제네릭 람다, 바이너리 리터럴, 반환 유형 유추 등.
  1. C++17 (ISO/IEC 14882:2017)
  • 파일 시스템 라이브러리, 병렬 알고리즘, if constexpr 등 새로운 기능 추가.
  • std::optional, std::variant 등.
  1. C++20 (ISO/IEC 14882:2020)
  • 모듈, 코루틴, 콘셉트, 범위 등 큰 변화가 있는 표준.
  • C++의 현대화 가속.

결론

사이트 아이콘

C++는 C 언어의 강력한 성능과 효율성을 유지하면서도 객체 지향 프로그래밍과 같은 고급 기능을 추가한 언어입니다. 지속적인 표준화 작업을 통해 현대적인 기능이 꾸준히 추가되며, 다양한 프로그래밍 패러다임을 지원하여 널리 사용되고 있습니다. C++는 성능이 중요한 시스템 소프트웨어부터 복잡한 애플리케이션 개발까지 다양한 분야에서 중요한 역할을 하고 있습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *