객체 지향 프로그래밍에서 클래스는 크게 두 분류로 구분하지요. 그것은 바로 구상(concrete) 클래스와 추상(abstract) 클래스이고요. 객체 지향 설계에서 이 두 클래스 구분은 가장 기본적이고 중요한 개념입니다. C++, Java, C# 등의 객체 지향 언어 문법책에서는 추상 클래스, 인터페이스, 상속, 다형성 그리고 virtual table 등을 문법적으로 설명합니다. 문법적 설명과 동작을 이해하는 것이 우선시되고요. 불행히도 이러한 책들을 독파 했음에도 클래스는 크게 두 가지로 분류할 수 있는데 어떤 것이 있냐고 물어 보면 잘모르는 사람들이 많아요. 객체를 정의하는 것이 클래스이며 이 클래스를 스택 또는 힙 메모리에 생성을 하여 사용 하는데 이것을 인스턴싱이라 부릅니다. 인스턴싱 할 수 있는..