首先是题目
【问题描述】
声名一个基类vehicle,有私有成员maxspeed和weight,公有成员run()和stop(),以及构造和析构函数。
从vehicle派生bicycle和motorcar, bicycle有私有成员height, motorcar有私有成员seatnum,以及各自的构造函数和析构函数。
从bicycle和motorcar派生出motorcycle,观察虚基类对继承的影响。
定义一个motorcycle的对象,分别调用run()和stop(),观察构造/析构函数的调用情况。
注意:构造函数和析构函数中均为cout语句,说明哪个构造/析构函数被调用。
该题重点和难点在于构造函数的设计,需考虑怎么给基类及最远基类传递参数。
然后是代码
#include <iostream>
using namespace std;
class vehicle
{
int maxspeed, weight;
public:
void run() {
cout << "vehicle run" << endl; }
void stop() {
cout << "vehicle stop" << endl; }
vehicle(int speed = 0, int wei = 0) {
maxspeed =