请设计水果和香蕉类,并通过测试程序,具体要求如下:
- 水果(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 f(10); f.display();
输出为:
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
参考答案:
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;
}
};