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

Posted

技术标签:

【中文标题】C ++如何从包含的类中调用父类方法?【英文标题】:C++ how to call a parent class method from contained class? 【发布时间】:2009-05-03 22:57:51 【问题描述】:

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

我四处搜索,这似乎适用于继承的对象,但不适用于包含的对象。甚至称它为父类是否正确?还是叫 Owner 类?

class Parent
private:
  Child mychild;

public:
  void doSomething();


class Child
public:
  void doOtherThing();


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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

孩子与父类完全没有联系。您必须将“this”传递给孩子(可能在构造函数中)才能使其工作。

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于C ++如何从包含的类中调用父类方法?的主要内容,如果未能解决你的问题,请参考以下文章

python获取上层方法调用

Java中的抽象类abstract

如何在java中调用另一个类中子类里的一个变量?

C# Specflow:如何在另一个文件夹的类中调用具有动态表作为参数的方法

Unity如何调用Xcode中的方法

请教,父类中如何调用子类中的虚函数