设计一个表示矩形的类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;
}
运行结果如下: