class Point {
int x, y;
public:
Point(int a, int b): x(a), y(b) {};
Point(const Point &t) {
x = t.x;
y = t.y;
};
int getx() { return x; }
int gety() { return y; }
};
class Rectangle {
Point p1, p2, p3, p4;
public:
Rectangle(const Point &a, const Point &b): p1(a), p4(b) {};
int area(void);
};
Rectangle类使用两个Points对象构造其对象。但代码无法编译。请帮我纠正错误。
c4.cpp: In constructor ‘Rectangle::Rectangle(const Point&, const Point&)’:
c4.cpp:18:57: error: no matching function for call to ‘Point::Point()’
Rectangle(const Point &a, const Point &b): p1(a), p4(b) {};
^
c4.cpp:18:57: note: candidates are:
c4.cpp:6:3: note: Point::Point(const Point&)
Point(const Point &t) {
^
c4.cpp:6:3: note: candidate expects 1 argument, 0 provided
c4.cpp:5:3: note: Point::Point(int, int)
Point(int a, int b): x(a), y(b) {};
^
c4.cpp:5:3: note: candidate expects 2 arguments, 0 provided
我已经阅读了重复的帖子并试图纠正我的错误,但它仍然给了我一些我不理解的消息。
编辑:现在我知道如果p2,p3被移除,代码可以被编译,谢谢。