C ++如何从包含的类中调用父类方法?

时间:2009-05-03 22:57:52

标签: c++ class

我正在尝试从包含的对象调用Parent类方法,但是对于以下代码没有运气。这样做的标准方法是什么?

我已经搜索过,这似乎适用于继承的对象,但不适用于包含的对象。将它称为父类是否正确?或者它被称为所有者类?

class Parent{
private:
  Child mychild;

public:
  void doSomething();
}

class Child{
public:
  void doOtherThing();
}

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

3 个答案:

答案 0 :(得分:11)

包含的对象对包含它的类没有特殊访问权限,并且通常不知道它包含它。您需要以某种方式将引用或指针传递给包含类 - 例如:

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

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

答案 1 :(得分:1)

孩子根本没有与父班级的联系。你必须将'this'传递给孩子(可能在构造函数中)以使其工作。

答案 2 :(得分:0)

如果孩子需要与父母互动,那么它需要对该对象的引用;目前,孩子没有主人的概念。