C++创建一个特殊的类:矩形(Rectangle)类

C++实现矩形类(Rectangle)的详细解析
109 篇文章 ¥59.90 ¥99.00
本文介绍了如何在C++中创建一个矩形类,包含长度和宽度属性,以及计算面积和周长的方法。通过示例代码展示了类的定义、对象创建、属性访问和修改,强调了类的封装性和代码的模块化优势。

C++创建一个特殊的类:矩形(Rectangle)类

矩形(Rectangle)是一种常见的几何形状,具有两条相等且平行的边和两条相等且平行的边的特点。在C++中,我们可以使用类来表示矩形,并为其添加一些特殊的功能和属性。

下面是一个示例代码,展示如何创建一个矩形类并实现基本的功能:

#include <iostream>

class Rectangle {
   
   
private:
    double length;
    double width;
#include <iostream> #include <string> using namespace std; struct CPoint { int x ; int y ; }; class CRectangle { private: const int id;//常量数据成员 static int total;//静态数据成员 const static string sclass; const static int f=1.0f; CPoint lefttop ; CPoint rightdown ; public: CRectangle( ); CRectangle( CPoint& lt, CPoint& rd ); CPoint GetLefttop() const { return lefttop; } CPoint GetRightdown() const { return rightdown; } void SetLefttop(CPoint & pt) { lefttop=pt; } void SetRightdown(CPoint & pt) { rightdown=pt; } int Getid() const { return id; } static int Gettotal() { return total; } int Area( ) const; int Perimeter( ) const; }; int CRectangle::total=0;//静态数据成员必须在的外部定义(正好一次)。 const string CRectangle::sclass="CRectangle"; CRectangle::CRectangle( ):id(++total) { lefttop.x=0; lefttop.y=0; rightdown.x=1; rightdown.y=1; } CRectangle::CRectangle( CPoint& lt, CPoint& rd ):id(++total) { lefttop = lt ; rightdown = rd ; } int CRectangle::Area( ) const { int wd= rightdown.x - lefttop.x ; int ht= rightdown.y - lefttop.y ; return wd * ht ; } int CRectangle::Perimeter( ) const { int wd= rightdown.x - lefttop.x ; int ht= rightdown.y - lefttop.y ; return 2 * ( wd + ht ) ; } int main() { CPoint lt, rd; cin >> lt.x >> lt.y; cin >> rd.x >> rd.y; CRectangle crt(lt,rd);//调用有参构造函数 CRectangle crt2;//调用默认构造函数 //创建常量对象 const CRectangle crt3(lt,rd); cout<<"当前创建矩形个数为:"; cout<<CRectangle::Gettotal()<<endl; //返回矩形的左上和右下点 CPoint lt1=crt.GetLefttop(); CPoint lt2=crt.GetRightdown(); //显示矩形的坐标 cout<<crt.Getid()<<"号矩形的坐标是:"<<"("<<lt1.x<<","<<lt1.y<<"), "; cout<<"("<<lt2.x<<","<<lt2.y<<")"<<endl; //显示矩形的面积和周长 cout << "Area:"<<crt.Area( )<<endl; cout <<"Perimeter:"<<crt.Perimeter( )<<endl; //修改矩形的左上角点 cout<<"请输入矩形新的左上点坐标:"; cin>> lt.x>>lt.y; crt.SetLefttop(lt); lt1=crt.GetLefttop(); //显示修改后矩形的坐标 cout<<"矩形的坐标是:"<<"("<<lt1.x<<","<<lt1.y<<"), "; cout<<"("<<lt2.x<<","<<lt2.y<<")"<<endl; //显示修改后矩形的面积和周长 cout << "Area:"<<crt.Area( )<<endl; cout <<"Perimeter:"<<crt.Perimeter( )<<endl; }
矩形Rectangle可以定义如下: ``` class Rectangle{ public: Rectangle(); // 默认构造函数 Rectangle(const Rectangle& p); // 复制构造函数 Rectangle(double a, double b, double c, double d); // 直接输入的构造函数 void input(); // 输入函数 void output(); // 输出函数 double area(); // 计算面积的函数 private: double x1, x2, y1, y2; // 矩形的两个对角点坐标 }; ``` 其中,构造函数可以有三种形式,分别是默认构造函数、复制构造函数和直接输入的构造函数。输入函数和输出函数分别用于输入和输出矩形的坐标信息。计算面积的函数可以根据矩形的两个对角点坐标计算出矩形的面积。完整的代码如下: ``` #include <iostream> using namespace std; class Rectangle{ public: Rectangle(); // 默认构造函数 Rectangle(const Rectangle& p); // 复制构造函数 Rectangle(double a, double b, double c, double d); // 直接输入的构造函数 void input(); // 输入函数 void output(); // 输出函数 double area(); // 计算面积的函数 private: double x1, x2, y1, y2; // 矩形的两个对角点坐标 }; Rectangle::Rectangle(){ x1 = 0, x2 = 0, y1 = 0, y2 = 0; } Rectangle::Rectangle(const Rectangle& p){ x1 = p.x1, x2 = p.x2, y1 = p.y1, y2 = p.y2; } Rectangle::Rectangle(double a, double b, double c, double d){ x1 = a, y1 = b, x2 = c, y2 = d; } void Rectangle::input(){ cin >> x1 >> y1 >> x2 >> y2; } void Rectangle::output(){ cout << area() << endl; } double Rectangle::area(){ return (x2 - x1) * (y2 - y1); } int main(){ Rectangle p1; p1.input(); p1.output(); Rectangle p2(p1); p2.output(); Rectangle p3(1, 1, 6, 3); p3.output(); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值