从采用父 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 以了解您的版本出了什么问题,以及为什么必须使用引用或指针。