纯虚函数: virtual int getsno() =0;
虚函数 : virtual int getsno();
比如说你要开发一个class A。你同事小明要开发一个class B : public A。class A里面有一个function叫getName。A是一个抽象里,并没有具体的空间保存name。这时候你有两个选择。
选择1:
class A {
public
virtual std::string getName() {} // 返回一个空函数。等子类来覆盖。
}
但是你的同事小明很粗心,总是忘记覆盖。结果导致class B调用的还是A::getName().
选择2:
class A{
public
virtual std::string getName() = 0; //纯虚函数,子类必须实现!
}