Function 重写与函数指针

Function 重写与函数指针,function,overriding,function-pointers,Function,Overriding,Function Pointers,为什么程序员更喜欢重写而不是使用函数指针字段 绩效效益?-据我所知不是这样。 这是代码可读性吗不,语法基本相同 我看到的唯一区别是相反,即函数指针可以在运行时更改。 这里我缺少什么?您可以编写灵活的函数和库,允许程序员通过将函数指针作为参数传递来选择行为。语法不一样,甚至调用语法也不一样。如果您查看一个使用函数指针的C库,您会发现必须调用如下函数 db->fd(db, &filedesc); 即 dB必须重复以获得C++中已知的“ > (对每个非静态方法的隐式参数)。< /P>

为什么程序员更喜欢重写而不是使用函数指针字段

绩效效益?-据我所知不是这样。
这是代码可读性吗不,语法基本相同

我看到的唯一区别是相反,即函数指针可以在运行时更改。

这里我缺少什么?

您可以编写灵活的函数和库,允许程序员通过将函数指针作为参数传递来选择行为。

语法不一样,甚至调用语法也不一样。如果您查看一个使用函数指针的C库,您会发现必须调用如下函数

db->fd(db, &filedesc);

即<代码> dB<代码>必须重复以获得C++中已知的“<代码> > <代码>(对每个非静态方法的隐式参数)。< /P> 而且,正如您所承认的,声明语法是不同的,设置结构/类也是不同的。对于函数指针,您需要自己在每个实例上设置函数指针。这既乏味又容易出错


除此之外,重写更安全,因为它避免了函数指针为null或重置为指向有趣位置的问题。

“语法基本相同”?你在用哪种语言工作?@larsmans我的意思是你可以用同样的方式称呼他们。声明语法当然不同。