C++实验(三)

题目:设计一个家具类(长、宽、高),派生出一个沙发类(新增数据成员颜色)和一个床类(新增数据成员材质) ,再由它们派生出一个沙发床类,并增加成员形状。使用虚基类,使沙发床类只继承一份家具类拷贝。定义构造函数,并测试类的结构是否合理。

#include <iostream>
#include <string>
using namespace std;
//家具类Furniture
class Furniture
{
public:
	Furniture(double l = 0.0,double w= 0.0,double h= 0.0)
	{ 
		length = l;
		width = w;
		height = h;
	}
	void display()
	{
		cout<<"长度:"<<length<<endl;
		cout<<"宽度:"<<width<<endl;
		cout<<"高度:"<<height<<endl;
	}
protected:
	double length;
	double width;
	double height;
};
//床类Bed
class Bed: virtual public Furniture
{
public:
	Bed(double l,double w,double h,string mq)
		:Furniture(l,w,h),maqu(mq){}
	void display()
	{
		Furniture::display();
		cout<<"材质:"<<maqu<<endl;
	}
protected:
	string maqu;//床的材质
};
//沙发类Sofa
class Sofa: virtual public Furniture
{ 
public:
	Sofa(double l,double w,double h,string c)
		:Furniture(l,w,h),colour(c){}
	void display()
	{
		Furniture::display();
		cout<<"颜色:"<<colour<<endl;
	}
protected:
	string colour; //沙发的颜色
};
//沙发床
class SleeperSofa:public Bed, public Sofa
{
public:
	SleeperSofa(double l,double w,double h,string mq,
		string c,string s)
		:Furniture(l,w,h),Bed(l,w,h,mq)
		,Sofa(l,w,h,c),shape(s){}
	void display()
	{
		Sofa::display();
		cout<<"材质:"<<maqu<<endl;
		cout<<"形状:"<<shape<<endl;
	}
protected:
	string shape; //沙发床的形状
};
int main()
{
	SleeperSofa ss(10.4,10.6,10.8,"橡木","红色","方形");
	ss.display();
	system("pause");
	return 0;
}

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jackson Xi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值