내 클래스 DynamicArrayList
을 사용하여 클래스 힙을 구현하려고합니다. 내 헤더 파일에서 힙에는 내 DynamicArrayList
헤더가 포함되어 있으며 DynamicArrayList
은 개인 회원으로 있습니다. DynamicArrayList :: 데이터가 클래스 DynamicArrayList에서 선언 private 멤버에 액세스 할 수 없습니다개인 멤버의 비공개 멤버에 액세스
: 내 힙을 구현에서 나는 그러나 그것은 저에게 오류를 제공, 또한 내
DynamicArrayList
에서 개인 구성원 배열 "데이터"를 사용하려면
힙 파일에서 배열을 변경하려고 할 때. 예를 들어 나는 lst
와
lst.data[0] = lst.data[heapSize]
가 DynamicArrayList
가 힙 파일에 개인 회원으로 정의되는 노력할 것이라고 나는 오류를 얻을 것입니다. 회원 번호를 private
에서 protected
으로 변경해야합니까? 배열에 액세스하려면 어떻게해야합니까?
'public'으로 설정하지 않으면이 경우 사용할 수 없습니다. – skypjack
'DynamicArrayList'는 기본 클래스가 아닌 멤버이므로'data'가'private'인지'protected'인지는 중요하지 않습니다. 'DynamicArrayList'에'data' (누구나 액세스 할 수 있도록 허용)의 접근 자 (getter)를 주거나'DynamicArrayList'가'Heap'을 친구로 선언하도록 할 수 있습니다 (클래스를 함께 연결하고'Heap'이 효과적으로 처리하도록합니다) 'DynamicArrayList'의 모든 멤버를 public으로 설정합니다. 이 경우 캡슐화를 깨뜨리지 않기 때문에 'friend'가 더 나을 것입니다 (https://isocpp.org/wiki/faq/friends#friends-and-encap). –