2009-05-03 20 views
3

含まれているオブジェクトからParentクラスメソッドを呼び出そうとしていますが、次のコードでは不運です。それを行うための標準的な方法は何ですか?C++親クラスメソッドを含むクラスから呼び出す方法

私はこれを検索しましたが、これは継承されたオブジェクトでは機能するようですが、含まれているオブジェクトでは機能しないようです。それを親クラスと呼んでもいいですか?それともオーナークラスと呼ばれていますか?

class Parent{ 
private: 
    Child mychild; 

public: 
    void doSomething(); 
} 

class Child{ 
public: 
    void doOtherThing(); 
} 

void Child::doOtherThing(){ 
    Parent::doSomething(); 
} 

答えて

10

含まれているオブジェクトには、それを含むクラスへの特別なアクセス権がありません。一般に、それが含まれているかどうかはわかりません。あなたは何とか含むクラスへの参照やポインタを渡す必要があります - 例えば:

class Child{ 
public: 
    void doOtherThing(Parent & p); 
}; 

void Child::doOtherThing(Parent & p){ 
    p.doSomething(); 
} 
0

子が親と対話する必要がある場合、それはそのオブジェクトへの参照が必要になります。現在のところ、子供には所有者の概念はない。

1

子は、親クラスへの接続はまったくありません。この作業をするには、子に(おそらくコンストラクタ内で) 'this'を渡す必要があります。

関連する問題