构造函数使用另一个类的对象

时间:2014-08-13 13:40:57

标签: c++

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被移除,代码可以被编译,谢谢。

0 个答案:

没有答案