#37. 왜 데이터 타입 클래스를 만들때 CObject에서 상속받는가?

중요하게 읽고 알아두셔야 할 Chapter라고 생각이 됩니다.


매번 어떤 새로운 데이터 클래스를 작성할 때마다 항상 CObject로부터 상속을 받아서 데이터 클래스를 작성해왔습니다. 하지만, 왜 꼭 이렇게 해줘야하는것인가요?


MFC의 구조성을 활용한 아주 좋은 프로그래밍 방법중에 하나라는 사실을 이 Chapter를 통하여 알아가시기 바랍니다.


실제로 MFC로 작성된 프로그램은 표준적인 파일 입/출력을 개별적으로 처리하지 않습니다. 모두 직렬화 (Serialization)이라는 함수 안에 몰아서 처리하는 경우가 대부분입니다. 왜일까요?


프로그램에서 “파일”의 “저장”을 선택해서 저장이 될 수 있는 경우는 직렬화 함수를 제외하고는 없습니다. 다시 말해서, 개별적으로 파일 입출력을 구현하려면 별도의 메뉴를 또 만들어야 한다거나, 수작업으로 특정 위치에서 불러들이게금 해줘야합니다. 즉, 훨씬 불편하다는 이야기죠.


그렇다면 이런 불편함을 겪지 않기 위해서는 직렬화 함수를 사용해야 할텐데, 어떻게 사용할까요? 네. 바로, CObject로부터 상속받아오는 것입니다.


CObject로부터 여러분이 새로운 데이터 클래스를 상속받아오면 몇 가지 정의만으로 충분히 파일의 저장과 열기가 자동으로 이루어지도록 구성할 수 있습니다.


파일 처리의 용이성 다음으로 중요한 이유는 다양한 클래스와의 호환성입니다. CObject는 거의 모든 MFC 클래스의 가장 높은 선조격인 클래스입니다. 이런 선조 클래스를 기반으로 작성된 수많은 클래스들과 당연히도 호환이 됨은 물론 아주 좋은 성능을 보여주게 되어있습니다. 그런 예로, CObList가 있겠지요.


CObject로 클래스를 상속받아서 새 데이터 클래스를 만드는 결정적인 이유는 다름이 아니라 손쉽고 빠른 파일 처리를 위해서라는 점입니다. 그외에, 실제로 CObject로부터 얻게 되는 이점을 따지자면 상당히 많습니다. 나중에 다시 설명하도록 하지요.

댓글 남기기