Point类具有int x,int y两个数据成员。Rectangle类公有继承Point类。

本文档展示了一个C++编程实例,涉及Point类和Rectangle类的定义。Rectangle类从Point类继承,包含了矩形的长、宽和位置信息。通过构造函数初始化矩形的左下角和右上角点,提供了计算面积和显示矩形信息的函数。在主函数中创建Rectangle对象并输出其坐标和面积。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Point 类具有 int x,int y 两个数据成员。 Rectangle 类公有继承 Point 类。
要求:
1 )为派生类增加构造函数、析构函数,及其它必要的函数。
2 )派生类中有能够打印矩形信息的函数,包括的信息有矩形点的位置坐标、矩形长宽值及面积。
#include<iostream>
using namespace std;
class Point{ //声明基类Point
    public:
        Point(){} //基类默认构造函数
        Point(int x,int y);
        Point(Point &p):x(p.x),y(p.y){} //基类复制构造函数
        void show();//打印点坐标的函数
        ~Point(){} //基类析构函数
    private:
        int x,y;
};
Point::Point(int x,int y){
    Point::x=x;
    Point::y=y;
}
void Point::show(){
    cout<<"("<<x<<","<<y<<")"<<endl;
}
class Rectangle:public Point{ //声明公用派生类Rectangle
    public:
        Rectangle(){} //派生类默认构造函数
        Rectangle(int x,int y,int width,int length);
        Rectangle(Rectangle &p):width(p.width),length(p.length){}
        int getArea(); //求矩形面积的函数
        ~Rectangle(){} //派生类析构函数
        void display(); //打印矩形的长、宽、面积
    private:
        Point l_P,r_P; //声明基类Point的对象
        int width,length;
};
Rectangle::Rectangle(int l_x,int l_y,int r_x,int r_y):l_P(l_x,l_y),r_P(l_x,l_y){
    width=r_x-l_x; //两坐标的横坐标之差的值是宽
    length=r_y-l_y; //两坐标的纵坐标之差的值是长
}
int Rectangle::getArea(){//定义求面积的函数
    return width*length;
}
void Rectangle::display(){
    cout<<"长:"<<(width>length?width:length)<<endl;
    cout<<"宽:"<<(width>length?length:width)<<endl;
    cout<<"面积:"<<getArea()<<endl;
}
int main()
{
    Point p1(1,2),p2(3,4); //Point类对象p1、p2并初始化
    cout<<"左下角点的坐标:";p1.show();
    cout<<"右上角点的坐标:";p2.show();//输出两点坐标
    Rectangle r(1,2,3,4);
    r.display();
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值