请哪位高手帮我看看。C++。谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/19 08:28:14
1. 编写一个Person类,要求有编号、姓名属性并从People(人员)类派生出student(学生)类,添加属性:班号char classNO[7];从people类派生出teacher(教师)类,添加属性:职务char principalship[11]、部门char departmentE21]。从student类中派生出graduate(研究生)类,添加属性:专业char subject[21]、导师teacher adviser;从graduate类和teacher类派生出TA(助教生)类,注意虚基类的使用。重载相应的成员函数,测试这些类。
2。 定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(SeatNum)等属性。从bicycle和motorcar派生出摩托车(motorcycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程试试看。
第2题后面的那个问题希望也说明一下。。谢谢。。

第二个题目:(如果不设置虚基类就必须在在基类中写他的实现函数否则会出错,当设置了虚基类后就可以在子类中写他的实现函数,这样灵活性比较大)

#include <iostream.h>
class vehicle
{
protected:
int wheels;
float weight;
public:
vehicle(int wheel,float weight);
int get_wheels();
float get_weight();
float wheel_load();
void print();
};
class car : vehicle
{
int passenger_load;
public:
car(int wheels,float weight,int passengers=4);
int get_passengers();
void print();
};
class truck : vehicle
{
int passenger_load;
float payload;
public:
truck(int wheels,float weight,int passengers=2,float max_load=240000.00);
int get_passengers();
float efficiency();
void print();
};
vehicle::vehicle(int wheels,float weight)
{
vehicle::wheels=wheels;
vehicle::weight=weight;
}
int vehicle::get_wheels()
{
return wheels;
}
float vehicle::get_weight