【发布时间】:2011-12-07 10:51:00
【问题描述】:
假设 B 类的对象是 A 类的成员。
class B{
//Definitions
}
class A{
public:
A();
B b_child;
int some_function();
}
B 中定义的函数之一需要从其所有者(父?)A 调用(公共)函数。有没有直接的方法可以做到这一点?
到目前为止,我设法做到这一点的唯一方法是在类定义之外实现它:
A a_obj;
a_obj.b_child.setowner(&aobj);
告诉b_child谁是它的所有者。我不喜欢这个。我宁愿使用b_child 的一些内置方法来访问其父级(如果可能)。如果这不可能,我宁愿在B 的构造函数中直接传递所有者的地址,但我不知道如何在其定义中引用A 的地址。
【问题讨论】:
-
这是一个很好的问题,尽管您应该知道“子类”在 C++ 中具有非常特殊的含义,与继承有关。