急!C++编程题,作业快到期了,请高手帮忙(因为是新手,只有这些分数了,全奉上了)

来源:百度知道 编辑:UC知道 时间:2024/06/09 18:59:15
题目:
(1)定义并实现一个机动车类CVehicle,其中包含一个车牌号(char *p_id)数据成员,以及相应的构造函数、拷贝构造函数、析构函数、以及设置车牌号的成员函数。
(2)对CVehicle类作以下修改后,写出CVehicle类的完整的定义和实现:
①增加总载客数(long total_person)和总载重量(double total_weight)两个数据成员,以及相应的获取这两个数据成员值的成员函数getTotalPerson()和getTotalWeight()。
②编写一个友元函数getVehicleID()获取车牌号p_id。
③为CVehicle类根据车牌号是否相等定义运算符(‘==’)和运算符(‘!=’)两个运算符重载函数。
(3)从CVehicle类中派生出CCar类(增加carried_person数据成员,构造和析构函数)和CTruck类(增加carried_weight数据成员,构造和析构函数)。在CCar类的构造函数和析构函数中改变基类成员total_person,在CTruck类的构造函数和析构函数中改变基类成员total_weight。

已经调试过了,三条的程序分列如下:

第(1)问:
#include<string.h>
class CVehicle
{
public:
char *p_id;
public:
CVehicle(){strcpy(p_id,"京A00000");};//初始化为 京A00000
CVehicle(const CVehicle &ve){strcpy(p_id,ve.p_id);};//拷贝构造函数
~CVehicle();
set_id(const char *pId);//设置车牌号
};

CVehicle::set_id(const char *pId)
{
strcpy(p_id,pId);
};

第(2)问:
#include<string.h>
class CVehicle
{
public:
char *p_id;
long total_person;//总载客数
double total_weight;//总载重量
public:
CVehicle(){strcpy(p_id,"京A00000");};//初始化为 京A00000
CVehicle(const CVehicle &ve){strcpy(p_id,ve.p_id);};//拷贝构造函数
~CVehicle();
set_id(const char *pId);//设置车牌号
long getTotalPerson(){return total_person;};
double getTotalWeight(){return total_weight;};
friend char* getVehicleID(CVehicle &fve){return fve.p_id;};//获取车牌号p_id的友元函数
bool operat