OOP

C++는 멀티 패러다임 언어이며, 개체 지향 프로그래밍(Object-Oriented Programming, OOP)이다.

이전의 제네릭 프로그래밍은
- 더 유연하다. 다형성은 서브 클래스에 국한하지 않는다.
- 더 나은 성능을 제공한다. 함수를 호출할 때, 오버헤드가 없다.

상속은 여러 클래스가 데이터와 기능을 공유할 때 생산성을 향상시킬 수 있다.
상속된 데이터에 접근하는데 오버헤드가 발생하지 않으며, 상속된 멤버 함수를  호출해도
virtual이 아니라면 추가 비용이 발생하지 않는다.
개체 지향 언어는 런타임 다형성을 제공한다.
런타임 다형성은 멤버 함수의 구현을 런타임에 결정할 수 있다.
실행 중에 클래스 타입을 결정할 수 있다.