7-7 车辆选择(继承)(40 分)

有一个汽车类vehicle,它具有一个需传递参数的构造函数,汽车类vehicle中的数据成员为: 车轮个数wheels和车重weight放在保护段中,汽车类vehicle中的公有成员函数为:get_wheels()(返回车轮个数的值)、get_weight()(返回车重的值)、wheel_load()(返回每个轮胎的载重量的值:weight/wheels)、print()(输出车轮的个数和车重的公斤数);

小车类car是vehicle类的派生类,它具有一个需传递参数的构造函数,小车类car中的私有数据成员为:车载人数passenger_load,小车类car中的公有成员函数为:get_passengers()(返回车载人数的值)、print()(输出小车车轮的个数和车重的公斤数以及车载人数的个数);

卡车类truck是vehicle类的派生类,它具有一个需传递参数的构造函数,卡车类truck中的私有数据成员为:载人数passenger_load和载重量payload,卡车类truck中的公有成员函数为:get_passengers()(返回车载人数的值)、efficiency()(返回卡车的载重效率的值:payload/(payload+weight)、print()(输出卡车车轮的个数和车重的公斤数以及车载人数的个数和卡车的载重效率的值))。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
类的继承是指在定义一个新的类时,可以基于已有的一个或多个类创建一个新的类,新类将继承原有类的属性和方法,同时可以添加新的属性和方法。 派生是指从一个已有的类派生出一个新的类,新类可以包含原有类的所有成员,也可以添加新的成员。在派生过程中,新类可以重载或覆盖原有类的成员。 在C++中,可以使用关键字“class”或“struct”来定义一个类。定义一个派生类时,需要使用关键字“class”或“struct”,加上冒号“:”,然后指定基类的名称。例如: ```c++ class baseClass{ public: int baseMember; }; class derivedClass : public baseClass{ public: int derivedMember; }; ``` 在上面的例子中,`derivedClass`是从`baseClass`派生而来的。`derivedClass`包含了`baseClass`的`baseMember`成员和自己的`derivedMember`成员。`public`关键字表示`derivedClass`继承了`baseClass`的公有成员。 在派生类中,可以使用`virtual`关键字来声明虚函数,从而实现多态性。 ```c++ class baseClass{ public: virtual void virtualFunction(){ cout << "This is the virtual function in baseClass." << endl; } }; class derivedClass : public baseClass{ public: void virtualFunction(){ cout << "This is the virtual function in derivedClass." << endl; } }; ``` 在上面的例子中,`baseClass`定义了一个虚函数`virtualFunction`,并且在`derivedClass`中重载了这个函数。当调用`virtualFunction`时,如果对象是`baseClass`类型,则调用`baseClass`中的函数;如果对象是`derivedClass`类型,则调用`derivedClass`中的函数。这就是多态性的实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值