一些快递商,如FedEx、DHL和UPS,都提供多样化的服务,同时也收取不同的费用。创建一个表示各种不同包裹的继承层次。以包裹类Package作为基类,两日包裹类TwoDayPackage和连夜包裹类OvernightPackage作为派生类。基类Package应该包括含代表寄件人和收件人姓名、地址、所在城市、所在州和邮政编码等的数据成员。此外,还应包含存储包裹重量(以盎司计)和每盎司费用的数据成员。类的构造函数应初始化这些数据成员,并确保重量和每盎司费用为正值。Package应该提供public成员函数calculateCost,该函数计算重量和每盎司费用的乘积,得到的是与运输该包裹有关的费用并返回(返回值类型为double)。派生类TwoDayPackage应继承基类Package的功能,但还应包含一个数据成员,表示付给两日快递服务的平寄费。TwoDayPackage构造函数应接受一个值来初始化这个数据成员。类TwoDayPackage还应该重新定义基类的成员函数calculateCost来计算运输费用,具体方法是将平寄费加上由基类Package的calculateCost函数计算得到的基于重量的费用中。派生类OvernightPackage应直接继承基类,并且应包含一个附加的数据成员,表示付给连夜服务的每盎司的额外费用。类OvernightPackage应当重新定义基类的成员函数calculateCost,来使它在计算运输费用之前,先将额外的每盎司费用加到标准的每盎司费用上。编写测试程序,创建每种Package
的对象并测试成员函数calculateCost。