C++에서는 기본타입 (int, double etc), const 제한자, 선언 연산으로 생성할 수 있는 내장 타입과 추상화 메커니즘을 바탕으로 만들어진 사용자 정의 타입 2가지로 나뉜다. 내장 타입 같은 경우에는 로우 레벨에 가깝게 설계돼였으며, 전통적으로 하드웨어의 능력을 직접적이고 효율적으로 사용한다. 반면에 프로그래머로 하여금 진보된 어플리케이션을 쉽게 작성하게 해주는 하이 레벨 기능을 제공하지 않는다. 사용자 정의 타입과 같은 경우에는 프로그래머가 스스로 적절한 표현방식과 연산을 갖춘 타입을 설계하고 구현하며, 간단하고 편리하게 사용할 수 있게 해준다. 사용자 정의 타입의 대표적인 예로 "클래스"와 "열거형"을 들 수 있다. 구조체 새로운 타입을 만드는 첫 단계에 필요한 구성 요소를 데이터 구조..