• c++ 纯虚函数、抽象类


    一、 纯虚函数

    抽象类

    只要有一个纯虚函数,这个类称为抽象类
     抽象类的特点
     1、无法实例化
     2、抽象类的子类,必须要重写父类中的纯虚函数,否者也属于抽象类

    例子一

    1. #include
    2. #include
    3. using namespace std;
    4. class Base
    5. {
    6. //纯虚函数
    7. //只要有一个纯虚函数,这个类称为抽象类
    8. //抽象类的特点
    9. //1、无法实例化
    10. //2、抽象类的子类,必须要重写父类中的纯虚函数,否者也属于抽象类
    11. virtual void func() = 0;//储蓄函数
    12. /*virtual void func() //普通的虚函数
    13. {
    14. }*/
    15. };
    16. class Son : public Base
    17. {
    18. public:
    19. };
    20. void func()
    21. {
    22. //Base b;//err 抽象类无法实例化对象
    23. //new Base;//err 抽象类无法实例化对象
    24. //Son s;//err 子类必须重写父类中的存续函数,否则无法实例化
    25. }
    26. void main()
    27. {
    28. }

    例子二

    1. #include
    2. #include
    3. using namespace std;
    4. class Base
    5. {
    6. //纯虚函数
    7. //只要有一个纯虚函数,这个类称为抽象类
    8. //抽象类的特点
    9. //1、无法实例化
    10. //2、抽象类的子类,必须要重写父类中的纯虚函数,否者也属于抽象类
    11. public:
    12. virtual void func() = 0;//储蓄函数
    13. /*virtual void func() //普通的虚函数
    14. {
    15. }*/
    16. };
    17. class Son : public Base
    18. {
    19. public:
    20. virtual void func()
    21. {
    22. cout << "Son func被调用" << endl;
    23. }
    24. };
    25. void func()
    26. {
    27. //Base b;//err 抽象类无法实例化对象
    28. //new Base;//err 抽象类无法实例化对象
    29. //Son s;//err 子类必须重写父类中的存续函数,否则无法实例化
    30. Base* b = new Son;
    31. b->func();
    32. }
    33. void main()
    34. {
    35. func();
    36. }

  • 相关阅读:
    浅谈ProForm中的数据转化
    Java学习笔记(二十八)
    YMK_周报2
    看RPA如何助力传统行业数字化转型
    paddle2.3+centos7.6.5+cuda10.1+nccl2.7.8
    曲线艺术编程 coding curves 第十章 螺旋曲线(SPIRALS)
    数据仓库之雪花模型
    QFtp的使用
    [Linux]进程概念
    (七)Java算法:希尔插入排序(详细图解)
  • 原文地址:https://blog.csdn.net/lengyue1084/article/details/133142237