问答题

使用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(); }

【参考答案】

(1) strcpy(file_name,filename); contents=NULL;(2) contents=n......

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