c++新手入门教程_c++基础知识[通俗易懂]

c++新手入门教程_c++基础知识[通俗易懂]工程10-1扩展Vehicle类在该工程中,我们针对第八章中的Vehicle类创建一个子类

c++新手入门教程_c++基础知识[通俗易懂]"

工程10-1 扩展Vehicle

在该工程中,我们针对第八章中的Vehicle类创建一个子类。

回忆一下,Vechile类封装了汽车的信息,包括载客人数,邮箱容量以及每加仑油能跑的里程数。我们可以以Vechile类作为基础来创建更多更具体的类。例如,卡车就是一种Vechile。卡车的一个重要属性就是它的载重量。因此我们可以采用集成Vehicle类的方式来创建Truck类,只需要增加一个实例变量来表示它的载重量。在该工程中,我们就将创建这样的Truck类。其中,我们会把Vehicle的实例变量声明为private,而增加访问函数来获取它们的值。

步骤:

1. 创建一个文件,名称TruckDemo.cpp,把第八章中最后一个版本的Vehicle的实现拷贝过来。

2. 创建Trucnk类,如下:

//在Vechile类的基础上增加特有的属性  
class Truck : public Vehicle  
{  
public:  
    int cargocap; //载重量,单位:磅  
    //构造函数  
    Truck( int p , int f, int m, int c ) : Vehicle(p,f,m)  
    {  
        cargocap = c;  
    }  
    //载重量的访问函数  
    int get_cargocap()  
    {  
        return cargocap;  
    }  
};

这里,Truck类继承了Vehicle类,并增加了cargaocap成员。因此,Truck类中包含了通用类Vechile中的全部元素。增加的只是Trunck特有的元素。

3. 完整的程序如下:

#include <iostream>
using namespace std;
//声明Vehicle类
class Vehicle
{
    int passengers; // 载客人数
    int fuelcap;    // 油箱容量
    int mpg;        // 每加仑油能跑的里程数
public:
    //构造函数
    Vehicle(int p, int f, int m)
    {
        passengers = p;
        fuelcap = f;
        mpg = m;
    }
    int range()    //计算并返回汽车能跑的最大里程数,此处为函数声明
    {
        return mpg * fuelcap;
    }
    //访问函数
    int get_passangers() { return passengers; };
    int get_fuelcap() { return fuelcap; };
    int get_mpg() { return mpg; };
};
//在Vechile类的基础上增加特有的属性
class Truck : public Vehicle
{
public:
    int cargocap; //载重量,单位:磅
    //构造函数
    Truck( int p , int f, int m, int c ) : Vehicle(p,f,m)
    {
        cargocap = c;
    }
    //载重量的访问函数
    int get_cargocap()
    {
        return cargocap;
    }
};
int main()
{
    //生成Trunck类的对象
    Truck semi(2,200,7,4400);
    Truck pickup(3,28,15,2000);
    int dist = 252;
    cout <<"Semi can carry " << semi.get_cargocap() << " pounds.\n";
    cout << "It has a range of " << semi.range() << " miles.\n";
   cout << "To go " << dist << " miles semi needs " 
    << dist/semi.get_mpg() << " gallons of fuel.\n\n";
    cout <<"Pickup can carry " << pickup.get_cargocap() << " pounds.\n";
    cout << "It has a range of " << pickup.range() << " miles.\n";
    cout << "To go " << dist << " miles pickup needs " 
    << dist/pickup.get_mpg() << " gallons of fuel.\n";
    return 0;
}

4. 上面程序的输出如下:

Semi can carry 4400 pounds.
It has a range of 1400 miles.
To go 252 miles semi needs 36 gallons of fuel.
Pickup can carry 2000 pounds.
It has a range of 420 miles.
To go 252 miles pickup needs 16 gallons of fuel.

5. 我们还可以从Vehicle类派生出许多别的类。比如,下面的代码框架就创建了一个越野车的类,它存储了车辆距离地面的净距离:
class off-road : public Vechile
{

    int groundClearance; // 距离地面净距离,单位英寸
public:
    // …
};

重要的一点是,一点我们创建了具有对象通用属性的基类,我们就可以继承该类从而创建特殊的类。每个派生类只是简单地增加自己特有的属性即可,这就是继承的本质。


今天的文章c++新手入门教程_c++基础知识[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/84615.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注