所以我们假设我们有一个Parent类
class Parent
{
};
我有两个子课
class Child1 : public Parent
{
void AccessFunction();
}
和
class Child2 : public Parent
{
void FunctionBeingAccessed();
}
其中
void Child1::AccessFunction()
{
FunctionBeingAccessed();
}
有可能吗?
编辑: 谢谢你的答案!
所以我问这个的原因是因为我有一个三等的GrandChild,我正在寻找一种方法让它成为所有父类的Child类的孩子,尽管他们与众不同。
有办法吗?
EDIT2:
更好地解释我的问题。
所以我有一个玩家,项目和关卡类,他们是3dmodel类的孩子。我想做碰撞课,他们的孩子。所以我需要使用虚拟继承
答案 0 :(得分:1)
我认为这是可能的,但您必须将FunctionBeingAccessed();
的保护级别设置为 public 。类的默认保护级别为私有,因此您的代码无法正常工作。
将void FunctionBeingAccessed();
更改为:
class Child2 : public Parent
{
public:
void FunctionBeingAccessed();
}
这应该有效。
答案 1 :(得分:0)
您可以声明Child1
Child2
的朋友,然后Child1
类型的对象可以访问Child2
的私有/受保护方法。