通常,当它们共享同一个父类时,有没有办法从另一个子类访问Child类?

时间:2015-05-08 00:57:21

标签: c++ class parent-child

所以我们假设我们有一个Parent类

class Parent
{
};

我有两个子课

class Child1 : public Parent
{
 void AccessFunction();
}

class Child2 : public Parent
{
void FunctionBeingAccessed();
}

其中

void Child1::AccessFunction()
{
  FunctionBeingAccessed();
}

有可能吗?

编辑: 谢谢你的答案!

所以我问这个的原因是因为我有一个三等的GrandChild,我正在寻找一种方法让它成为所有父类的Child类的孩子,尽管他们与众不同。

有办法吗?

EDIT2:

更好地解释我的问题。

diagram

所以我有一个玩家,项目和关卡类,他们是3dmodel类的孩子。我想做碰撞课,他们的孩子。所以我需要使用虚拟继承

2 个答案:

答案 0 :(得分:1)

我认为这是可能的,但您必须将FunctionBeingAccessed();的保护级别设置为 public 。类的默认保护级别为私有,因此您的代码无法正常工作。

void FunctionBeingAccessed();更改为:

class Child2 : public Parent
{
public:
void FunctionBeingAccessed();
}

这应该有效。

答案 1 :(得分:0)

您可以声明Child1 Child2的朋友,然后Child1类型的对象可以访问Child2的私有/受保护方法。