2009-05-03 61 views
3

我想從一個包含的對象調用父類方法,但沒有運氣與下面的代碼。什麼是標準的做法呢?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」傳遞給孩子(可能在構造函數中)以使其工作。

相關問題