OF中虚函数疑惑
-
@mohui 可以这么认为。我给你举个例子,比如说现在要写一个插值的类。先定义一个基类base,里面包含一个用于计算f(x)的值的纯需函数fun。然后定义其他插值方法,比如拉格朗日,牛顿,样条等,让他们继承base类,然后在内部实现不同方法对应的fun函数。
然后使用的话,可以这么用:base* it=new newton(); it->fun(x);
因此纯虚函数使得不同的类有了相同的接口,并且不写实现就会报错,规范了代码。如果需要定义某个类所特有的方法,那就不需要虚函数。如果需要继承该基类的子类中的某几个需要具有类似的功能,比如说都需要一个初始化的函数,那么可以把这个函数抽出来另外定义一个基类,然后多重继承。不过一般不太推荐同时继承很多基类。