Dotcpp  /  试卷列表  /  C++  /  题目 7755

请使用“答题”菜单或使用VC6打开考生文件夹proj3

请使用“答题”菜单或使用VC6打开考生文件夹proj3下的工程文件proj3,其中声明了CDeepCopy类,它是一个用于表示动态数组的类。请编写其中的复制构造函数。

要求:

补充编制的内容写在//********333********与//********666********两行之间。不得修改程序的其他部分。

注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。

部分源程序如下:

/**********code.c**********/
# include "CDeepCopy.h"
CDeepCopy :: ~CDeepCopy() { delete[] p ;}
CDeepCopy:: CDeepCopy(int k) { n = k; p = new int[n]; } //构造函数实现
CDeepCopy:: CDeepCopy(const CDeepCopy& r) //复制构造函数
{
    /*******333*******/
    /*******666*******/
}
int main()
{
    CDeepCopy a(2),d(3);
    a.p[0] = 1; d.p[0] = 666   //对象 a,d 数组元素的赋值
    {
        CDeepCopy b(a);
        a.p[0] = 88 ;
        cout<<b.p[0]         //显示内层局部对象的数组元素
    }
    cout<<d.p[0];        //显示 d 数组元素 a.p[0] 的值
    cout<<"d fade away:\n"; cout<<a.p[0]   //显示 a 数组元素 a.p[0] 的值
    writeToFile("k:\k01\61010001\");
    return 0
}
结果文件 out.dat 内容如下:
5222 d fade away:
66
/**********code.c**********/
答案

n=r. n;

delete[]p;

P=new int[n];

for (int i=0; i

p[i]=r. p[i];

return*this;

解析

该处的补充内容为复制构造函数的过程。复制构造函数并将函数内容一并复制到新的函数里,复制构造函数的一般格式:

<类名> : : <类名> ( const<类名>&<引用对象名> )

{

//复制构造函数

}

题目信息

题号:7755
题型:简答题
知识点:C++
难度:普通