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 ++如何从包含的类中调用父类方法?的主要内容,如果未能解决你的问题,请参考以下文章