親クラスがあり、その親クラスから 2 つの公に派生したクラスがあります。例えば。
class Parent
| |
| |
| |
class derived1 class derived2.
質問: ある派生クラスのプライベート メンバーに別の派生クラスからアクセスしたいと考えています。どうすればいいですか?
私が今持っている方法は次のとおりです: cDerived1 オブジェクトをパラメーターとして cDerived2 の ctor に渡します。このようにすると、cDerived2 を cDerived1 のフレンドとして宣言し、cDerived2.h 内に cDerived1.h を含める必要があります。
#include cParent.h
#include cDerived1.h
#include cDerived2.h
void main (){
// Instantiate a cDerived1 object
Derived1 dev1();
// Instantiate a cDerived2 object. The cDerived2 object will need access to the
// private members of cDerived1. So pass dev1 by reference to dev2 ctor.
Derived2 dev2(dev1);
}
これは正しい方法ですか、それとも私は非常に露骨に間違ったことをしていますか??
ありがとう。
Paul のコメントに応えて: 以下に示すように、親クラスに共有コードが既にあります。
cParent.h
class cparent{
public:
// ctor
// dtor
protected:
int* pArr;
};
cDerived1.h
// derived1's header
#include "cParent.h"
class cDerived1 : public cParent{
public:
//
};
cDerived2.h
// derived2's header
#include "cParent.h"
class cDerived2 : public cParent{
public:
// I want access to derived1's pArr member over here....How do I do this ?