首先,类一般是有默认的无参构造函数的,但是因为定义了Circle的有参构造函数,Circle(Point pp,int rr),所以系统不会在生成默认的无参构造函数然后因为在main函数中有: Circle c1(p1,7),c2;其中的c2并没有给它参数,系统会认为它使用的是无参构造函数所以这就原因了。如果不加上Circle(){}的话,系统会认为c2是不合法的,因为没有它的无参构造函数。