继承和多态(水果和香蕉)

6-1 继承和多态(水果和香蕉)

分数 50

全屏浏览题目

切换布局

作者 刘骥

单位 重庆大学

请设计水果和香蕉类,并通过测试程序,具体要求如下:

  1. 水果(Fruit)是基类,成员包含:
    • 保护成员变量重量(weight,int类型)
    • 公有构造函数
    • 公有析构函数
    • 公有函数display
  2. 香蕉(Banana)从水果类公有继承,成员包含:
    • 私有成员变量产地(origin,string类型)
    • 公有构造函数
    • 公有析构函数
    • 公有函数display

对应代码

 

Fruit f(10); f.display();

输出为:

Fruit Constructor
weight=10
Fruit Destructor

对应代码

 

Banana a("Chongqing",10); a.display();

输出为:

Fruit Constructor
Banana Constructor
origin=Chongqing,weight=10
Banana Destructor
Fruit Destructor

对应代码

 

Fruit *pf=new Banana("Chongqing",10);; pf->display(); delete pf;

输出为:

Fruit Constructor
Banana Constructor
origin=Chongqing,weight=10
Banana Destructor
Fruit Destructor

测试程序

 

#include<iostream> #include<string> using namespace std; /* 请在这里填写答案 */ int main(){ Fruit *pf=new Banana("Chongqing",10);; pf->display(); delete pf; return 0; }

测试程序的输入

 

测试程序的输出

Fruit Constructor
Banana Constructor
origin=Chongqing,weight=10
Banana Destructor
Fruit Destructor

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

class Fruit
{
protected:
    int weight;
public: 
Fruit(int a)
{
    cout << "Fruit Constructor" <<endl;
    weight = a;
}
virtual ~Fruit()
{
    cout << "Fruit Destructor" <<endl;
}
virtual void display()
{    
    cout << "weight=" << weight <<endl;
}
};
 
class Banana :public Fruit
{
private:
    string origin="";
public:
Banana(string a,int b):origin(a),Fruit(b)
{
cout << "Banana Constructor" <<endl;
};
~Banana()
{
    cout << "Banana Destructor" <<endl;
}
 void display()
{    
    cout << "origin=" << origin <<",weight="<<weight<<endl;
}
};

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值