请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1。程序中位于每个“//ERROR****ound****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: value=63 number=1 注意:只修改每个“//ERR

admin2015-06-27  49

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1。程序中位于每个“//ERROR****ound****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:
value=63
number=1
注意:只修改每个“//ERROR****found****”下的那一行,不要改动程序中的其他内容。
#include
usingnamespacestd;
classMyClass{
int*P;
constintN;
public:
//ERROR**********found**********
MyClass(intval):N=1
{
P=newint;
*p=val;
}
//ERROR**********found**********
~MyClass(){delete*p;)
friendvoidprint(MyClass&obj);
};
//ERROR**********found**********
voidMyClass::print(MyClass&obj)
{
cout<<"value="<<*(obj.P)<<
end1;
cout<<"number:"<end1;
}
intmain()
{
MyClassobj(63);
print(obj);
return0;
}

选项

答案(1)MyClass(intval):N(1) (2)~MyClass(){delete[]p;} (3)voidprint(MyClass&ob;)

解析 (1)主要考查考生对构造函数的掌握,在这里不能使用赋值语句。
(2)主要考查考生对析构函数的掌握,析构函数的delete语句要使用标识符“[]”,即delete[]p;。
(3)主要考查考生对友元函数的掌握,友元函数并不属于类,因此定义时前面不用加类名和作用域符号。
转载请注明原文地址:https://kaotiyun.com/show/unBD777K
0

最新回复(0)