6-1 继承和多态(水果和香蕉)
分数 50
全屏浏览题目
切换布局
作者 刘骥
单位 重庆大学
请设计水果和香蕉类,并通过测试程序,具体要求如下:
- 水果(Fruit)是基类,成员包含:
- 保护成员变量重量(weight,int类型)
- 公有构造函数
- 公有析构函数
- 公有函数display
- 香蕉(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;
}
};