虚函数后面的const=0

Posted stephen-qin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚函数后面的const=0相关的知识,希望对你有一定的参考价值。

const 和 =0要分开理解.

成员函数后面用 const 修饰,const表示this是一个指向常量的指针,即对象成为一个常量,即它的成员不能够变化.(默认情况下,this的类型是指向类类型非常量版本的常量指针。例如在Sales_data成员函数中,this的类型是Sales_data *const,即类一旦实例化一个对象后,this指向这个对象,是不能改变的,但是对象本身可以变)

=0表示这个成员函数是纯虚函数,也就是它可以没有定义,只有接口,由它的继承类具体定义它的行为,当然,你也可以给它定义缺省的函数体
一个类里如果包含 =0 的纯虚函数,那么这个类就是一个抽象类,它不能具体实例化(不能创建它的对象),而只能由它去派生子类


以上是关于虚函数后面的const=0的主要内容,如果未能解决你的问题,请参考以下文章

虚函数——架构问题

在“函数参数”中通过const类型在派生类中使用不同函数参数的虚函数会破坏虚函数吗? [重复]

对象类和子类的虚函数返回类型不同?

具有虚函数的类的大小增加了额外的4个字节

Hello,C++纯虚函数和抽象类

4CPP 面向对象之 ——多态多继承static 成员const 成员