一般来说,当它们共享相同的 parent class 时,有没有办法从另一个 child class 访问 Child class ?

In general, is there a there a way to access a Child class from another child class when they both share the same parent class?

那么让我们考虑一下我们有一个 Parent class

class Parent
{
};

然后我有两个childclass

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

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

其中

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

可能吗?

编辑: 感谢您的回答!

所以我问这个的原因是因为我有第三个 class GrandChild,我正在寻找一种方法让它成为 Child of [=45] =]ALL Parent Class 的 Child class,尽管它们是不同的。

有办法吗?

编辑 2:

更好地解释我的问题。

diagram

所以我有一个玩家、物品和级别 class,他们是 3dmodel class 的 child。我想使它们的碰撞 class 成为 child。所以我需要使用虚拟继承

我相信是可以的,但是你得把FunctionBeingAccessed();的保护等级设置成public。 类 的默认保护级别是 private,因此您的代码将无法运行。

void FunctionBeingAccessed();改为:

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

应该可以。

您可以将 Child1 声明为 Child2 的友元,然后类型 Child1 的对象可以访问 Child2 的 private/protected 方法。