在多态中,通常父类中虚函数的实现是毫无意义的,主要都是调用子类重写的内容
    因此可以将虚函数改为纯虚函数
    纯虚函数语法:virtual 返回值类型 函数名 (参数列表)= 0 ;

    如果一个类中包含有纯虚函数,那么这个类称之为抽象类,抽象类不可以实例化对象。

    抽象类特点**:

    • 无法实例化对象
    • 子类必须重写抽象类中的纯虚函数,否则也属于抽象类

    (抽象类很像Java中的接口)

    1. class Base
    2. {
    3. public:
    4. //纯虚函数
    5. //类中只要有一个纯虚函数就称为抽象类
    6. //抽象类无法实例化对象
    7. //子类必须重写父类中的纯虚函数,否则也属于抽象类
    8. virtual void func() = 0;
    9. };
    10. class Son :public Base
    11. {
    12. public:
    13. virtual void func()
    14. {
    15. cout << "func调用" << endl;
    16. };
    17. };
    18. void test01()
    19. {
    20. Base * base = NULL;
    21. //base = new Base; // 错误,抽象类无法实例化对象
    22. base = new Son;
    23. base->func();
    24. delete base;//记得销毁
    25. }
    26. int main() {
    27. test01();
    28. system("pause");
    29. return 0;
    30. }