吕萌123 2022-04-10 11:54 采纳率: 100%
浏览 278
已结题

c++:使用一个类Line来描述线段,使用Point类的对象来表示端点,使Line类包括Point类的两个对象p1和p2,作为其数据成员。Line类具有计算线段长度的功能,在构造函数中实现

使用一个类Line来描述线段,使用Point类的对象来表示端点,使Line类包括Point类的两个对象p1和p2,作为其数据成员。Line类具有计算线段长度的功能,在构造函数中实现

  • 写回答

2条回答 默认 最新

  • 关注
    #include<iostream>
    #include<cmath>
    using namespace std;
    
    class Point {
    public:
        Point(int xx = 0, int yy = 0) {//构造函数
            x = xx;
            y = yy;
        }
        Point(Point& p);//复制构造函数
        int getX() { return x; }
        int getY() { return y; }
    private:
        int x, y;
    };
    Point::Point(Point& p) {//复制构造函数的实现
        x = p.x;
        y = p.y;
        cout << "Calling the copy constructor of Point" << endl;
    }
    //类的组合
    class Line {
    public:
        Line(Point xp1, Point xp2);
        Line(Line& l);
        double getLen() { return len; }
    private:
        Point p1, p2;//Point类的对象p1,p2
        double len;
    };
    //组合类的构造函数
    Line::Line(Point xp1, Point xp2) :p1(xp1), p2(xp2) {
        cout << "Calling constructor of Line" << endl;
        double x = static_cast<double>(p1.getX() - p2.getX());
        double y = static_cast<double>(p1.getY() - p2.getY());
        len = sqrt(x * x + y * y);
    }
    //组合类的复制构造函数
    Line::Line(Line& l) :p1(l.p1), p2(l.p2) {
        cout << "Calling the copy constructor of Line" << endl;
        len = l.len;
    }
    //主函数
    int main()
    {
        Point myp1(1, 1), myp2(4, 5);//建立Point类的对象
        Line line(myp1, myp2);//建立Line类的对象
        Line line2(line);//利用复制构造函数建立一个新对象
        cout << "The length of the line is:";
        cout << line.getLen() << endl;
        cout << "The length of the line2 is:";
        cout << line2.getLen() << endl;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月16日
  • 已采纳回答 4月10日
  • 创建了问题 4月10日

悬赏问题

  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化