构造函数与析构函数(二)

设计一个表示矩形的类Rect,其矩形成员长float * Length ,宽float * Width为指针变量,设计相应成员函数,实现下列功能:
① 构造函数设置长和宽(默认为1)。
② 复制构造函数用老对象生成新对象。
③ set()函数设置长和宽(默认为0)。
④ 计算并返回长方形的周长。
⑤ 计算并返回长方形的面积。
⑥ 析构函数释放动态分配的长和宽。
编制主程序应用指针建立对象测试类。

#include"iostream"
using namespace std;
class Rect {
public:
   Rect(float=1,float=1);
   Rect(Rect &a);
   void set(float=0,float=0);
   float getP();
   float getS();
   ~Rect();
private:
	float * length;
	float * width;
};

Rect::Rect(float len,float wid)
{length=new float;
 *length=len;
 width=new float;
 *width=wid;
}
Rect::Rect(Rect &r)
{length=new float;
 *length=*(r.length);
 width=new float;
 *width=*(r.width);
}
void Rect::set(float len,float wid)
{
	*length=len;
	*width=wid;
}
float Rect::getP()
{
	
	return 2*(*length+*width);
}
float Rect::getS()
{
return *length * *width;
}
Rect::~Rect()
{delete length;
 delete width;
}

int main()
{
	Rect a(3,4);
	Rect b(a);
	a.set(5,6);
	cout<<a.getS()<<' '<<a.getP()<<endl;
	cout <<b.getS();
	return  0;
}

运行结果如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值