【正确答案】(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释放内存。