C++의 아버지: 뱌른 스트로우스트룹(Bjarne Stroustrup), 《The C++ Programming Language》 저자이기도 하다. 저자가 이 언어를 설계하고 구현한 목적은 UNIX 커널 서비스를 다중 프로세서와 근거리 통신망 클러스터에 분산하는 문제를 해결하기 위함이다. 당시 이벤트 구동 시뮬레이션 개발을 할 때 Simula 언어가 적합하지만 성능이 부족하다는 점을 발견했다. 반면 C 언어는 효율은 높지만 모듈화와 타입 검사 기능이 미흡했기에 저자는 Simula의 클래스 메커니즘을 C에 추가하는 방안을 생각해냈고, 클래스가 있는 C「C with Classes」가 탄생했다. 이것이 C++의 전신이다.
이후 이 언어는 여러 대형 프로젝트에 적용되어 자원 소모량이 적고 효율이 높다는 점이 검증되었지만 당시 연산자 오버로딩, 참조, 가상 함수, 템플릿, 예외 처리 등 수많은 기능이 부족했다.
초기에는 내부 사용만 허용되었으며, 1983년 7월 C++가 처음 실험실을 벗어나 외부 기관에서 사용되기 시작했다.
++는 C 언어의 증가 연산자로, C 언어의 진화 및 업그레이드 버전임을 의미한다.
C++11은 개발 단계 코드명이 C++0x이며 본 튜토리얼은 C++11을 기반으로 작성되었다.
C++를 개발한 핵심 목표는 동료들이 어셈블리어, 순수 C 또는 당시 유행하던 각종 고급 언어를 더 이상 작성하지 않아도 되도록 하여 고품질 프로그램 개발 난이도를 낮추고 코딩 경험을 개선하는 것이다.
C++ 언어의 발전은 핵심 표준 라이브러리 컴포넌트 개발과 동시에 진행되었다.
C++ 타임라인
1979년:개발 시작, 초기 명칭「C with Classes」, 클래스, 생성자/소멸자, 기본 병렬 처리 라이브러리 구현
1984년:정식으로 C++로 개명, 가상 함수, 오버로딩, 참조, IO 스트림 라이브러리 추가
1985년:최초 상용 C++ 출시
1998년:첫 국제 표준 C++98 최종 확정
2002년:새 표준 개발 시작, 코드명 C++0x
2003년:C++98 오류 수정판 발표, 정규 표현식, 해시 컨테이너, 스마트 포인터 등 라이브러리 컴포넌트 추가
2009년:C++0x 기능 확정, 람다, 이동 의미, 멀티스레드, 통합 초기화 등 현대적 기능 탑재
2011년:새 표준 정식 명칭 C++11로 지정, ISO 공식 승인
2012년:C++11 완전 지원 컴파일러 출시, C++14, C++17 개발 착수
C++의 아버지
C++의 아버지 뱌른 스트로우스트룹(Bjarne Stroustrup)은 1955년생으로 2022년 모건 스탠리 정규직에서 정년 퇴직했으나 C++ 관련 업무는 계속 진행하고 있다.
