假设我有一个基 class Base
和两个派生类 Derived: public Base
和 Derived2: public Base
。
我有一个纯虚函数
virtual int CompareByInsertKey( Base* item_in_list ) = 0;
在类 Base
中。所以它是一个函数,它接受一个指向 Base
类的指针。
我希望我的类 Derived
覆盖此虚函数,但我希望它采用指向 Derived
类的指针作为参数。
我还希望我的类 Derived2
覆盖此函数,但我想将指向 Derived2
类的指针作为参数。
如果我将参数保留为 Base* item_in_list
是否会自动执行此操作,因为 Derived
和 Derived2
是 Base
类的一部分?
如果没有,我该怎么做?
谢谢,如果您需要我发布更多信息,请发表评论。
最佳答案
它自动获取指向派生类的指针,因为 Derived *
可以隐式转换为 Base *
。不过,您必须在函数参数中使用 Base 来实现它,以便重写该函数。
virtual int CompareByInsertKey( Base* item_in_list ) override
{
Derived *ptr = dynamic_cast<Derived *>(item_in_list);
// ...
}
关于c++ - 我是否需要使用继承对象(相对于基础对象)来覆盖我的虚函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25334517/