你今天机器学习了么 2020-05-28 15:19 采纳率: 0%
浏览 127

C++问题,没有啥思路,求大佬帮忙

在不改变现有main.cpp的情况下,写一个shape.h和一个shape.cpp来计算两个长方形的大小同时用is_larger比较大小,同时重载运算符 >,下面是main.cpp



#include<iostream>
#include"shape.h"

using namespace std;

int main()
{
// construct a point at position (1,1)
// constuctor of class "Point" is called
Point p(1,1); 

// construct two rectangles using different parameters
Rectangle r1; //r1 is initialized of size 1X1 at the origin 
Rectangle r2(p,0.3,2.9);

// move rectangle r1
// shift the rectangle horizontally by 0.2
// shift the rectangle vertically by -1.3
r1.move(0.2,-1.3);

// compute the areas using member function .area()
cout << r1.area() << endl;
cout << r2.area() << endl;

// compare whether r1 has a larger area than r2?
cout << r1.is_larger(r2) << endl;

// overloading the member function .is_larger() with >
cout << (r1 > r1) << endl;
cout << (r1 > r2) << endl;

return 0;
}

展开全部

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-05-28 23:24
    关注

    问题解决的话,请点下采纳

    #pragma once
    
    class Point
    {
    private:
        double x;
        double y;
    public:
        Point() { x = y = 0; }
        Point(double a, double b) { x = a; y = b; }
        Point(Point& pt) { x = pt.x; y = pt.y; }
        void move(double a, double b)
        {
            x += a;
            y += b;
        }
    };
    
    class Rectangle
    {
    private:
        Point p;
        double w;
        double h;
    public:
        Rectangle() : p(0, 0), w(1), h(1) { }
        Rectangle(Point pt, double a, double b) 
        {
            p = pt;
            w = a;
            h = b;
        }
        void move(double a, double b)
        {
            p.move(a, b);
        }
        double area()
        {
            return w * h;
        }
        bool is_larger(Rectangle& another)
        {
            return area() > another.area();
        }
        bool operator>(Rectangle& another)
        {
            return is_larger(another);
        }
    };
    

    1
    0.87
    1
    0
    1
    Press any key to continue . . .

    评论
编辑
预览

报告相同问题?