当前位置:   article > 正文

C++中的抽象类

C++中的抽象类

一、概念

在虚函数的后面写上 =0 ,则这个函数为纯虚函数。包含纯虚函数的类叫做抽象类(也叫接口类),抽象类不能实例化出对象。派生类继承后也不能实例化出对象,只有重写纯虚函数,派生类才能实例化出对象。纯虚函数规范了派生类必须重写,另外纯虚函数更体现出了接口继承。

二、例子

  1. class Car
  2. {
  3. public:
  4. virtual void Drive() = 0;
  5. };
  6. class Benz :public Car
  7. {
  8. public:
  9. virtual void Drive()
  10. {
  11. cout << "Benz-舒适" << endl;
  12. }
  13. };
  14. class BMW :public Car
  15. {
  16. public:
  17. virtual void Drive()
  18. {
  19. cout << "BMW-操控" << endl;
  20. }
  21. };
  22. void Test()
  23. {
  24. Car* pBenz = new Benz;
  25. pBenz->Drive();
  26. Car* pBMW = new BMW;
  27. pBMW->Drive();
  28. }

三、接口继承和实现继承

 普通函数的继承是一种实现继承,派生类继承了基类函数,可以使用函数,继承的是函数的实现。虚函数的继承是一种接口继承,派生类继承的是基类虚函数的接口,目的是为了重写,达成多态,继承的是接口。所以如果不实现多态,不要把函数定义成虚函数。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/497703
推荐阅读
相关标签
  

闽ICP备14008679号