C++中的虚函数后面的等于0问题?

例子1
class Builder
{
public:
Builder() {}
virtual void makeFloor()=0;
}

例子2
class Builder
{
public:
Builder() {}
virtual void makeFloor();
}

例子1 和 例子2 的区别在于 例子1 你函数后面是有等于0的操作,
但是例子2中没有这个操作,我想问问这两种写法有什么区别吗?

virtual void makeFloor()=0;
这个叫做纯虚函数,没有实现,Builder必须是抽象类
virtual void makeFloor();
这个是一般的虚函数,有实现。

有等于0的表示纯虚函数,表明该类是一个抽象类,不能实例化对象。派生类必须实现改纯虚函数

例子1中的函数是纯虚函数,是一个抽象函数,不能实现。
例子2中的函数是一般的虚函数,能够实现。

=0 表示纯虚函数, 拥有纯虚函数的类不能实例化出对象。

例子2中是普通虚函数。 函数体应该是在其他地方【没列出来,比如cpp文件中】

virtual void makeFloor()=0;是纯虚函数,有纯虚函数是抽象类不可定义且继承类且必须重载函数(重载函数不是纯虚函数是正常函数),而virtual void makeFloor();是虚函数有,虚函数可以定义在·继承中可重载(非虚函数重载会被原先的函数覆盖)