一个虚函数const问题
下面的类定义中,纯虚函数后跟的const是什么意思?请大虾指点!
class Integ
{
public:
virtual double operator()(double a,double b,double eps)const=0;
};
[解决办法]
表示它的括号运算符函数不会修改该类对象的成员变量,它的子类同理
[解决办法]
A function can only be declared const if it doesn 't modify any of its fields.
[解决办法]
成员函数加const修饰就是说明这个函数不能修改数据成员.
纯虚函数本来是没有代码的(纯虚析构函数除外),所以可能就会让人觉得这样的纯虚函数用const修饰并没有意义,因为它本来就不会去修改成员.
但是不要忘了,纯虚函数是为子类做的接口,子类要去实现它的,而virtual函数要求const属性一并重写才行.所以才会有这种const的纯虚函数存在.