私は親クラスを持っており、その親クラスから2つのパブリック派生クラスを持っています。例えば。他の派生クラスから派生クラスのメンバーにアクセスするにはどうすればよいですか?
class Parent
| |
| |
| |
class derived1 class derived2.
質問: 私は別の派生クラスから派生したクラス1のプライベートメンバーにアクセスしたいと思います。これはどうすればいいですか?
今のところ私は次のようになります: cDerived1オブジェクトをcDerived2のctorにパラメータとして渡します。私はこのようにそれを行う場合は、その後、私はcDerived1の友人としてcDerived2を宣言する必要があり、また、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);
}
cDerived2.h
内を含め、これはそれを行うには正しい方法ですか私は非常に露骨に何かをやっています違う ??
ありがとうございました。
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 ?
親クラスに共有コードをプッシュすることです。さもなければ、メソッドをpublicにするか、やっているような友人構文を使う –
'pArr'がベースにある場合、ベースポインタを要求できませんか? –