C++ 을 여러 언어들의 연합체로 생각 할 수 있다.
다음은 C++ 을 이루는 하위 언어이다.
C
- C++ 은 C 를 기본으로 하고 있다. 따라서 C++ 로 C 의 규칙 만을 이용한 프로그래밍이 가능하다. 당연히 효율적인 프로그래밍이 힘들다.
객체지향 C++
'클래스를 쓰는 C++' 이 여기에 해당된다.
클래스, 캡슐, 상속, 다형, 추상, 가상함수 등등의 개념이 포함된다 프로그래밍 방식이다. 객체 지향의 설계 규칙은 여기에 해당된다.
템플릿 C++
C++ 의 일반화 프로그래밍 이다. 이는 사용자조차 자료형을 파악하지 않고 일반적으로 사용하는 프로그래밍이다.
템플릿을 사용하면 높은 확장성 및 재사용성을 보장 받을 수 있다.
STL
템플릿 라이브러리. STL은 컨테이너, 반복자, 알고리즘 과 함수 객체를 사용하기 때문에 STL 을 사용시 사용규약을 확인하고 따라야한다.
확실히 생각해둬야 하는 것은 각 언어를 효율적으로 사용 할 수 있어야하며 같은 얘기라도 사용 하위 언어에 따라 효율성이 다르다는 것이다. 가령 "값 전달이 참조 전달보다 효율이 더 좋다" 는 C 언어에서 통용되나 C++ 에서부터 생성자/소명자 개념이 있기 때문에 ''상수 객체 잠조 전달''이 효율이 좋다.
따라서 C++ 을 하위 언어를 합친 형태가 아닌 연합체로 바라볼 수 있어야한다.