从采用父 class 的函数访问子成员方法
Access child member methods from function taking parent class
测试函数需要接收从 Parent
派生的 class 的任何对象,并访问 Function()
的 Child
实现。对我来说,这似乎很容易做到。我尝试执行以下操作。直觉上感觉是对的,但行不通。它仍然调用 Function()
的 Parent
实现
Class Parent
{
Public:
Parent();
~Parent();
virtual void Function() = 0;
};
Class Child : public Parent
{
Public:
Child();
~Child();
void Function(){
// Do something
};
};
void Test(Parent Object)
{
Object.Function();
};
int main()
{
Child Object;
Test(Child);
return 0;
}
如何实现这样的事情?
我是不是漏掉了什么小东西?还是这个解决方案与我想要实现的目标相去甚远?
提前致谢。
要在 C++ 中使用虚函数,您必须使用引用或指针。试试这个
void Test(Parent& Object) // reference to Parent
{
Object.Function();
};
您应该研究 object slicing 以了解您的版本出了什么问题,以及为什么必须使用引用或指针。
测试函数需要接收从 Parent
派生的 class 的任何对象,并访问 Function()
的 Child
实现。对我来说,这似乎很容易做到。我尝试执行以下操作。直觉上感觉是对的,但行不通。它仍然调用 Function()
Parent
实现
Class Parent
{
Public:
Parent();
~Parent();
virtual void Function() = 0;
};
Class Child : public Parent
{
Public:
Child();
~Child();
void Function(){
// Do something
};
};
void Test(Parent Object)
{
Object.Function();
};
int main()
{
Child Object;
Test(Child);
return 0;
}
如何实现这样的事情?
我是不是漏掉了什么小东西?还是这个解决方案与我想要实现的目标相去甚远?
提前致谢。
要在 C++ 中使用虚函数,您必须使用引用或指针。试试这个
void Test(Parent& Object) // reference to Parent
{
Object.Function();
};
您应该研究 object slicing 以了解您的版本出了什么问题,以及为什么必须使用引用或指针。