クラスDynamicArrayList
のクラスを使用してクラスヒープを実装しようとしています。私のヘッダーファイルには、ヒープには私のDynamicArrayList
ヘッダーが含まれており、プライベートメンバーとしてDynamicArrayList
を持っています。私はまた私のDynamicArrayList
の民間メンバーである配列「データ」を使用したい私のヒープを実装するには、しかし、それはすることを私にエラーを与える:データはプライベートメンバにアクセスすることはできませんプライベートメンバーのプライベートメンバーへのアクセス
DynamicArrayList :: クラスDynamicArrayListで宣言されました
ヒープファイルの配列を変更しようとします。たとえば、私はlst
DynamicArrayList
は、ヒープファイル内のプライベートメンバーとして定義されていると、私はエラーになるだろうと
lst.data[0] = lst.data[heapSize]
をしようとするだろう。メンバーをprivate
からprotected
に変更するか、アレイにアクセスするために他に何ができますか?
'public'として設定しない限り、この場合は使用できません。 – skypjack
'DynamicArrayList'は基本クラスではなくメンバであるため、' data'が 'private'か' protected'かどうかは関係ありません。 'DynamicArrayList'に' data'(誰でもアクセス可能)のアクセサー(ゲッター)を与えたり、 'DynamicArrayList'を' Heap'をフレンドとして宣言して(クラスを結合し、 'Heap'が効果的に扱えるようにします'DynamicArrayList'のメンバの全てを' public'として、実際に公開アクセスを提供することなく)。この場合、「カプセル化を破ることはありません」(https://isocpp.org/wiki/faq/friends#friends-and-encap)ので、「friend」がおそらくより良いでしょう。 –