请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程中含有一个源程序文件proj1.cpp。 其中每个注释“//ERROR****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: smaller

admin2015-06-27  20

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程中含有一个源程序文件proj1.cpp。
其中每个注释“//ERROR****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
smaller
smaller
Sillaller
largest
注意:只修改注释“//ERROR**********found**********”的下一行语句,不要改动程序中的其他内容。
//proj1.cpp
#include
usingnamespacestd;
constintSize=4;
classMyClass
{
public:
MyClass(intx=0):value(X){}
voidSet《intx){value=x;}
friendvoidjudge(MyClassaobj);
private:
intvalue;
};
//ERROR**********found**********
voidMyClass::judge(MyClass&obj)
{
if(obj.value=Size)
cout<<"largest"<else
tout<<"smaller"<}
intmain()
{
MyClass*ptr=newMyClass[Size];
for(inti=0;i{
//ERROR**********found**********
(ptr+i).Set(i+1);
judge(*(ptr+i));
}
//ERROR**********found**********
deleteptr;
return0;
}

选项

答案(1)void Judge(MyClass &obj) (2)(ptr+i)->Set (i + 1); (3)delete [] ptr;

解析 (1)主要考查考生对友元函数的掌握,由类的定义中关于Judge函数的声明可知该函数为友元函数,因此在定义时不能使用类名和作用域符。
(2)主要考查考生对指针的掌握,ptr是指针,(ptr+i)也是指针,表示指针ptr向后移动i个位置,因此在调用成员函数时要使用标识符’->’。
(3)主要考查考生对delete语句的掌握,释放指针使用delete语句,其格式为:delete[]指针;。
转载请注明原文地址:https://kaotiyun.com/show/D2BD777K
0

最新回复(0)