2009-05-03 126 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”传递给孩子(可能在构造函数中)以使其工作。