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

admin2015-06-27  11

问题 请使用VC6或使用【答题】菜单打开考生文件夹pmjl下的工程pmjl,此工程中含有一个源程序文件pmjl.cpp。其中位于每个注释“//ERROR****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
Theextensionis:CPP
注意:只修改注释“//ERROR****found****”的下一行语句,不要改动程序中的其他内容。
//proj1.cpp
#include
usingnamespacestd;
classNyClass{
char*p;
public:
NyClass(charc)
{p=newchar;*p=c;}
//ERROR********Eound********
NyClass(constNyClasscopy)
{p=newchar;*p=*(copy.p);}
//ERROR********found********
下列析构函数用于释放字符指针
~NyClass(){freep;)
NyClass&operator=(constNyClass&rhs)
{
if(this=&rhs)return*this;
*P=*(rhs.p);
//ERROR********found********
returnthis;
}
charGetChar()const{return*p;}
};
intmain()
{
NyClassobjl(’C’),obj2(’P’);
NyClassobj3(obj1);
obj3=obj2;
cout<<"Theextensionis:"
<<return0;
}

选项

答案(1)MyClass(const MyClass & copy) { p = new char; *p = *(copy.p); } (2)~MyClass() {delete p; } (3)return *this;

解析 (1)主要考查考生对拷贝构造函数的掌握,拷贝构造函数的形参是引用调用。
(2)主要考查考生对析构函数的掌握,析构函数使用delete语句释放指针。
(3)主要考查考生对this指针的掌握,函数要求返回MyClass,可知要返回的是this指针指向的当前类,而非this指针。
转载请注明原文地址:https://kaotiyun.com/show/LIBD777K
0

最新回复(0)