问答题

使用VC6打开考生文件夹下的工程test14_1,此工程包含一个源程序文件test14_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果如下:
member1=5 member2=5
member1=7 member2=9
源程序文件test14_1.cpp清单如下:
#include<iostream.h>
class My Class

/************** found *****************
friend void setMember(MyClass myObj,char meml)

myObj.member1=mem1;
myObj.member2=mem1;
cout<<"member1="<<myObi.member1<<" member2="<<myObj.member2<<endl;

/************** found ***************/
void setMember(MyClass& myObj,char mem1,char mem2)

myObj.member1=mem1;
myObj.member2=mem2;
cout<<"member1:"<<myObj.member1<<"member2="<<myObj.member2<<endl;

private:
char member1;
char member2;

void main()

MyClass theObj;
/************** found ****************/
theObj.setMember(theObj,’5’);
theObj.setMember(theObj,’7’,’9’);

【参考答案】

(A)错误:friend void setMember(MyClass myObj,char memA)
正......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

问答题
使用VC6打开考生文件夹下的工程test14_3,此工程包含一个test14_3.cpp,其中定义了类File,但类的定义并不完整。请按要求完成下列操作,将程序补充完整。 (1)完成构造函数的定义,使数据成员filename,content指向为空。请在注释“ **1**”之后添加适当的语句; (2)完成函数set_contents的定义,该函数为content申请新的空间来存储new_content的内容,成功返回true,失败返回false。请在注释“ **2**”之后添加适当的语句; (3)完成成员函数copy(File &source,File &target)的定义,该函数实现将source的内容拷贝至target的功能,注意必须使用已经定义的成员函数来实现。请在注释“ **3**”之后添加适当的语句: (4)完成析构函数的定义,要求释放content指向的空间。请在注释“ **4**”之后添加适当的语句。 输出结果如下: file2:file1 contents file2:file2 contents 注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。 源程序文件testl4_3.cpp清单如下: #include<iostream.h> #include<string.h> class File private: char file_name[64]; char*contents; public: File(char*filename) ** 1 ** ; File::~File() ** 4 ** void printfile()cout<<file_name<< : <<contents<<endl;) friend bool copy(File & source,File & target); bool set_contents(char * new_contents); ; bool File::set_contents(char*new_contents) ** 2 ** if(contents==NULL) return false; strcpy(contents,new_contents); return true; bool copy(File &source,File &target) ** 3 ** void main) File f1( filel ),f2( file2 ); f1.set_contents( filel contents ); copy(f1,f2); f2.printfile(); f2.set_contents( file2 contents,); f2.printfile();