我有一個父類,我有2個來自該父類的公共派生類。例如。如何從另一個派生類訪問派生類的成員?
class Parent
| |
| |
| |
class derived1 class derived2.
問: 我想從另一個派生類訪問一個派生類的私有成員。我該怎麼做呢?
我現在的方式如下: 將cDerived1對象作爲參數傳遞給cDerived2的ctor。如果我這樣做,這樣的話,我必須聲明cDerived2作爲cDerived1的朋友,還包括cDerived1.h內cDerived2.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 ?
乾淨的方法是將共享代碼推送到父類。否則,使方法公開或使用你正在做的朋友語法 – 2012-02-13 22:18:51
如果'pArr'住在基地中,難道你只是要求基地指針嗎? – 2012-02-13 22:58:34