欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > 抽象类知识

抽象类知识

2025/6/2 3:21:34 来源:https://blog.csdn.net/weixin_43459437/article/details/143323940  浏览:    关键词:抽象类知识

抽象类

  • 基类作为抽象类
  • 拥有纯虚函数的类叫抽象类
  • 抽象类不能再实例化对象,但是可以定义指针与引用

举例

#include <iostream>using namespace std;
class Car
{
public:Car(string name, double oil):_name(name), _oil(oil){}string getName() { return _name; }double getLeftKM() { return _oil * getKMPerGallon(); }
protected:virtual double getKMPerGallon() = 0;
private:string _name;double _oil;
};class Benz : public Car {
public:Benz(string name, double oil) :Car(name, oil){}double getKMPerGallon() {return 20.0;}
private:
};class Audi : public Car {
public:Audi(string name, double oil) :Car(name, oil) {}double getKMPerGallon() {return 19.0;}
private:};class BWM : public Car {
public:BWM(string name, double oil) :Car(name, oil) {}double getKMPerGallon() {return 18.0;}
private:};void showCarLeftKM(Car& car)
{cout << "车名:" << car.getName() << ";" << "剩余公里数:" << car.getLeftKM() <<"KM" << endl;
}int main()
{Benz b1("奔驰",20);BWM b2("宝马", 18);Audi a("奥迪", 19);showCarLeftKM(b1);showCarLeftKM(b2);showCarLeftKM(a);
}

上述代码抽象出Car共有的两种属性,名字以及剩余的汽油。当涉及到针对不同类型的的车时,它们因为剩余汽油的不同以及每升汽油的行程数不同导致汽车的剩余公里数不同。所以使用虚函数定义不同类型汽车得到的不同每升汽油行驶的公里数的函数。

纯虚函数的定义使得class Car成为抽象类

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词