【正确答案】(1)错误:Rect2(1)
正确:Rect2
(2)错误:Rect3
正确:Rect3(Rect1)
(3)错误:Rect2.ledge=0;Rect2.sedge=0;
正确:Rect2.Set(0,0);
【答案解析】(1)主要考查考生对于重载构造函数调用的理解,Rect2应该调用缺省构造函数,这里重载的构造函数是以参数个数不同区分的;一个是缺省的构造函数,即没有参数的;另一个含有两个参数,为了能使"Default constructor called."输出,应该调用不含有参数的缺省构造函数;
(2)主要考查考生是否会使用缺省的拷贝初始化构造函数,这是不出现构造函数被调用语句的惟一方法,不管使用缺省的构造函数还是含有两个参数的构造函数都会在屏幕上出现多余的文字,而这些文字只有使用在类中没有被定义的缺省拷贝初始化构造函数来声明一个新的对象才不会出现,根据提示应该使用Rect1这个已有的对象去初始化Rect3这个新的对象,这就是拷贝初始化构造函数的作用,即使用已有的或者已存在的对象去初始化一个新的对象;
(3)主要考查考生对于类的对象访问权限的掌握,ledge和sedge为类的私有成员,不能被类的对象Rect2访问,应使用成员函数Set()。