error: undefined reference to `Circle:Circle()' and `Rectangle:Rectangle()'该怎么处理

error: undefined reference to `Circle::Circle()' and `Rectangle::Rectangle()'
题目如下:
引用
以点(Point)类为基类,重新派生类 Rectangle、Circle。坐标原点为(0,0),矩形水平放置,由左下方的顶点和长宽定义。

圆由圆心和半径定义。派生类操作判断任一坐标点是在图形内,还是在图形的边缘上,还是在图形外。

缺省初始化图形退化为坐标原点(0,0)

要求拷贝构造函数和定义默认构造函数

编程测试类设计是否正确。

class Point{

private:
double x,y;
public:
Point();
Point(double xv,double yv);
Point(Point& pt);
double getx();
double gety();
};
 
类Circle 和类Rectangle 都包含成员函数:int position(Point &pt)。 
 
假如点A落在圆内或是矩形内,则该函数返回-1;如果落在圆上或是矩形上,则返回0,;如果落在外面,则返回1。
 
主函数:
int main()
{
Circle cc1(3,4,5);
Rectangle rt1(0,0,6,8);
Point p1(0,0);
cout<<"point p1:";
switch(rt1.position(p1))
{
  case 0:cout<<"on-rectangle"<<endl;break;
  case -1:cout<<"inside-rectangle"<<endl;break;
  case 1:cout<<"outside-rectangle"<<endl;break;
}
switch(cc1.position(p1))
{
  case 0:cout<<"on-circle"<<endl;break;
  case -1:cout<<"inside-circle"<<endl;break;
  case 1:cout<<"outside-circle"<<endl;break;
}
return 0;
}
 
Input
 none

Output
 none

Hint
  const double PI=3.14;
 
 you only need to submit the class:Point 、Circle、Rectangle 


初学渣代码如下:
#include<iostream>
using namespace std;
class Point
{
protected:
double x,y;
public:
Point();
Point(double x,double y):x(x),y(y){}
Point(Point& pt);
double getx() const {return x;}
double gety() const {return y;}
};
Point::Point(Point& pt)
{
x=pt.x;y=pt.y;
}
class Circle:public Point
{
protected:
int r;
public:
Circle();
Circle(double x,double y, int r):Point(x,y),r(r){}
int getr() const {return r;}
int position(Point &pt);
};
int Circle::position(Point &pt)
{
int ireturn=0;
    int temp=0;
    int temp0=r*r;
    temp = (pt.getx()-x)*(pt.getx()-x)+(pt.gety()-y)*(pt.gety()-y);
    if(temp == temp0)
    {
        ireturn = 0;
    }
    else if (temp < temp0)
    {
        ireturn = -1;
    }
    else
    {
        ireturn = 1;
    }
    return ireturn;
}
class Rectangle:public Point
{
protected:
int length,width;
public:
Rectangle();
Rectangle(double x,double y,int length,int width):Point(x,y),length(length),width(width){}
int getlength() const {return length;}
int getwidth() const {return width;}
int position(Point &pt);
};
int Rectangle::position(Point& pt)
{
    int ireturn = 0;
 
    if (pt.getx()==x||pt.gety()==y||pt.getx()==x+length||pt.gety()==y+width)
    {
        ireturn = 0;
    }
    else if (pt.getx()>x&&pt.getx()<x+length&&pt.gety()>y&&pt.gety()<y+width)
    {
        ireturn = -1;
    }
    else
    {
        ireturn = 1; 
    }
    return ireturn;
}


上面三个class加入主函数后在VC6.0运行正常结果正确,但是在提交到网上系统(soj.me)时出现以下error提示:
引用
 Compiled Error:Our compiler can not recognize your source code.
/tmp/ccPNeoMF.o: In function `main':
(.text+0x163): undefined reference to `Circle::Circle()'
(.text+0x1ab): undefined reference to `Rectangle::Rectangle()'
collect2: ld returned 1 exit status

求各路大神指正!
另外还有一个问题,关于Class Point中的public下第一行:
class Point
{
protected:
double x,y;
public:
Point();
Point(double x,double y):x(x),y(y){}
Point(Point& pt);
double getx() const {return x;}
double gety() const {return y;}
};
那个Point()是什么作用?
多谢!
------解决方案--------------------
1.可能是默认构造函数没给实现。