gpt4 book ai didi

C++ 使用 using 关键字避免派生类中的动态调度

转载 作者:太空宇宙 更新时间:2023-11-04 14:01:33 25 4
gpt4 key购买 nike

在下面的例子中,我会使用动态调度来调用虚函数吗?

struct Base{
virtual double fn(){return 3.2;}
};
struct Deri1 : public Base{
using Base::fn;
}
struct Deri2 : public Base{
virtual double fn(){return 4.6;}
}

我正在实现的类包含更多信息,但有些我想为某些派生类保留默认值,但在其他类中覆盖,上面代码中的 fn() 就是一个例子。基本上,我只是使用基类来避免每次未重写 fn() 时都重写它。这是正确的方法吗?

谢谢!

最佳答案

可以通过避免函数定义中的“virtual”关键字来避免动态调度,只要不使用指针,如本 link 中所述.

这会导致一些泛型方法和多态性的复杂化。如果使用动态多态性,可以将指向基类的指针传递给方法,在这种情况下,“virtual”关键字对于指针来说是必需的,以确定使用哪个方法。可以使用模板定义静态多态方法,如下面的解释 link .

关于C++ 使用 using 关键字避免派生类中的动态调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19136599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com