0

私は4つのクラスを持っています。

class Aclass Bclass Cclass D

クラスCにはクラスAとクラスが含まれB、それらを参照します。

ヘッダー ファイル:

class C
{
private:
    A &a;
    B &b;
    int x;
    int y;
    int energy;
public:

    C(A &a, B &b);

          void print(void);

    virtual void printAt(void);

CPP ファイルには以下が含まれます。

void C::printAt(void)
{
    // move cursor to the current x, y coordinates
    b.gotoXY(x,y);
}

クラスDでは、 ( )Cでクラスを友達クラスにします。class D : public class C...

それから私は持っていvoid printAt(void)ます。

b.gotoXY..これはすべて機能しますが、 classから b class 属性 ( )にアクセスするにはどうすればよいDですか?

うまくいけば、これは理にかなっています。

4

4 に答える 4

0

protectedそれらをセクションに入れるだけです:

class C {
protected:
  A &a;
  B &b;

  ...
};

注:virtualメソッドとは関係ありません。

于 2013-04-12T15:24:18.380 に答える
0

他のクラスで属性へのアクセスを継承したい場合は、それらを非公開にして
、保護または公開を選択できるようにします。詳細については、http://www.learncpp.com/cpp-tutorial/115-inheritance-and-access-specifiers/
にアクセス して問題を解決し、以下のコードを試してください 。

class C
{
protected://or public
    A &a;
    B &b;
    int x;
    int y;
    int energy;
public:
    C(A &a, B &b);
    void print(void);
    virtual void printAt(void); 

そしてclass D

class D:public C
{
public:
    void printAt(void);
};
于 2013-04-12T15:40:00.793 に答える