问答题 基本操作 请使用"答题"菜单或使用VC6打开考生文件夹proj1下的工程proj1,其中有"住宅"类Home 和主函数main的定义。程序中位于每个// ERROR **********found**********下的语句行有错误,请加以更正。更正后程序的输出应该是: 南21条12号 李四 注意:只能修改每个// ERROR **********found**********下的那一行,不要改动程序中的其他内容。
【正确答案】(1) Home(const char *ad=NULL, const char * ow=NULL)或Home(const char *ad, const char * ow) (2) if(ad==NULL) (3) if(owner) delete []owner;
【答案解析】【解题思路】 (1)主要考查考生对构造函数默认参数的掌握,如果有一个形参具有默认实参,那么它后面所有的形参都必须有默认实参。Home构造函数中ad具有默认实参,所以ow也必须有默认实参。 (2)主要考查考生对赋值操作符和相等操作符区别的掌握,在if语句的判断条件中,使用赋值操作符时,表达式值始终为true,这里需要修改为相等操作符。 (3)主要考查考生对动态分配的掌握,在Home构造函数中,使用new char[]对owner动态分配内存,那么在析构函数必须对应使用delete [] owner释放内存。