처음에 object hierarchy라는 단어를 들었을 때에는 어리둥절했다. class hierarchy는 클래스 간의 상속 관계라는 것은 짐작할 수 있었지만, object는 어떤 것인지 감이 잘 잡히지 않았기 때문이다.



알아보니 간단한 개념이었다. class 계층은 인스턴스, 즉 object를 생성하기 위한 template이고, 이러한 class 간의 상속 관계를 class 계층이라고 하는 것이다. 


object 계층은 class 계층과는 다른 레벨의 추상화 단계에 있는 개념이다(another level of abstraction (e.g. in run-time). 코드 상에서 new로 할당된 객체(instance)들을 추상화하고, 이들간의 composition 관계를 나타낸 것이 object 계층이다.


enter image description here


위 사진을 보면, Wheel에는 고무나 프레임 같은 속성들이 있을텐데 여기서는 그 부분을 생략하여 추상화하였다. 


정리하자면, class 계층은 OOP에서의 클래스들 간의 관계이고, objects 계층은 실제 프로그램에서 메모리에 할당된 object 간의 관계를 나타낸 것이다.



알고나면 간단한 개념이다. 그런데 사수 분께서 이게 중요한 내용이라고 하니 우선은 염두하면서 개발해야겠다.




참고


oop - Class vs Object hierarchies


class - Object Hierarchy in OOP



'QT' 카테고리의 다른 글

LNK2019 외부 기호 참조 위치 함수 에서 확인 하지 못했습니다  (0) 2019.01.28
QTableView edit이 되지 않을 때  (3) 2018.05.23
Qt LNK 2019 에러  (1) 2018.04.30
Q_OBJECT 란  (1) 2018.02.28
블로그 이미지

NCookie

,