[디딤돌 C++] 63. 구성(COMPOSITION) 관계

학생) 구성 관계는 소유 개체를 생성할 때 피소유 개체를 함께 생성하고 소유 개체를 해제할 때 피소유 개체를 함께 해제하는 관계입니다.

구성 관계는 소유 개체와 피 소유 개체 사이의 관계입니다. 이러한 관계는 집합 관계도 마찬가지입니다. 두 가지 관계 모두 “가지다.”로 표현할 수 있으며 영어로 “Has a”로 표현할 수 있어서 “Has a”관계라고 말합니다.

집합 관계는 소유 개체와 피 소유 개체의 생성과 소멸은 독립적으로 진행합니다. 필통과 연필의 관계처럼 개체의 생성과 소멸은 독립적인 특징을 갖습니다. 구성 관계는 소유 개체를 생성할 때 피 소유 개체를 생성하고 소유 개체를 소멸할 때 피 소유 개체를 함께 소멸합니다. 사람과 눈의 관계처럼 소유 개체를 생성할 때 피 소유 개체도 함께 생성하고 소유 개체를 소멸할 때 피 소유 개체도 함께 소멸합니다.

CPP에서 구성 관계를 구현하는 방법은 크게 두 가지입니다. 하나는 소유 클래스에 피 소유 클래스 형식 변수를 멤버 필드로 선언하는 것입니다.

그리고 다른 하나는 소유 클래스에 피 소유 클래스 형식 포인터 변수를 멤버 필드로 선언하고 생성자에서 피 소유 개체를 동적 생성하고 소멸자에서 피 소유 개체를 동적 소멸하는 것입니다.

다음은 구성 관계에 속하는 사람과 눈의 관계를 코드로 표현한 것입니다.

▷ 실행 결과


[C++ 무료 동영상 강의] 63. 구성(Comosition) 관계