const 和 =0要分开理解.
首先理解一下分开的意思
成员函数后面用 const 修饰,const表示this是一个指向常量的指针,即对象成为一个常量,即它的成员不能够变化.(默认情况下,this的类型是指向类类型非常量版本的常量指针。例如在Sales_data成员函数中,this的类型是Sales_data *const,即类一旦实例化一个对象后,this指向这个对象,是不能改变的,但是对象本身可以变)
=0表示这个成员函数是纯虚函数,也就是它可以没有定义,只有接口,由它的继承类具体定义它的行为,当然,你也可以给它定义缺省的函数体
一个类里如果包含 =0 的纯虚函数,那么这个类就是一个抽象类,它不能具体实例化(不能创建它的对象),而只能由它去派生子类
合起来在虚函数后面–>纯虚函数
const 写在函数后头还=0这里不是const=0,虚函数表示方法是
virtual 返回值 函数名(参数表){函数体} ,
在继承的时候可以在子类中从新定义这个函数。如果你的子类中都重新定义了这个函数,那个父类中函数的定义就没有什么用了所以可以不定义只说明就行,也就是定义为纯虚函数形如:
virtual 返回值 函数名(参数表)=0;这里就不用定义实际的函数了。