首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的CDeepCopy是一个用于表示矩阵的类。请编写这个类的赋值运算符成员函数operator=,以实现深层复制。 要求: 补充编制的内容写在“//******
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的CDeepCopy是一个用于表示矩阵的类。请编写这个类的赋值运算符成员函数operator=,以实现深层复制。 要求: 补充编制的内容写在“//******
admin
2021-06-10
45
问题
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的CDeepCopy是一个用于表示矩阵的类。请编写这个类的赋值运算符成员函数operator=,以实现深层复制。
要求:
补充编制的内容写在“//**********333**********”与“**********666**********”之间。不得修改程序的其他部分。
注意:程序最后将结果输出到文件cut.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。
//CDeepCopy.h
#include<iostream>
#include<string>
using namespace std;
class CDeepCopy
{
public:
int n; //动态数组的元素个数
int *p;//动态数组首地址
CDeepCopy(int);
~CDeepCopy( );
CDeepCopy&operator=(const CDeepCopy&r);//赋值运算符函数
};
void writeToFile(char *);
//main.cpp
#include"CDeepCopy.h"
CDeepCopy∷~CDeepCopy( ){delete[ ]p;}
CDeepCopy∷CDeepCopy(int k){n=k;p=new int[n];}//构造函数实现
CDeepCopy& CDeepCopy∷operator=(const CDeepCopy&r)//赋值运算符函数实现
{
//********333********
//********666********
}
int main( )
{
CDeepCopy a(2),d(3);
a.p[0]=1;d.p[0]=666;//对象a,d数组元素的赋值
{
CDeepCopy b(3);//调用赋值运算符函数
a.p[0]=88;b=a;
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(" ");
return 0;
}
选项
答案
n=r.n;//把对象r字符长度赋值给n delete[ ]p;//删除动态数组p p=new int[n];//给动态数组p分配空间为n for(int i=0;i<n;i++) //遍历对象r中的数组p p[i]=r.p[i];//把r.p[i]赋值给p[i] return * this; //返回被赋值的对象
解析
主要考查考生对运算符重载的掌握,由注释可知此处要实现赋值运算符函数。要重载的运算符是“=”,该类的成员是动态数组p,数组元素个数为n,因此先释放原来的动态数组,再分配空间,然后逐个复制元素即可。
转载请注明原文地址:https://kaotiyun.com/show/cffp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列关于基类和派生类关系的叙述中,正确的是()。
关于函数重载,下列叙述中错误的是()。
有如下程序:#includeusingnamespacestd;classA{public:A(inti=0):r1(i){}voidprint(){cout
下面描述中,不属于软件危机表现的是()。
计算斐波那契数列第n项的函数定义如下:intfib(intn){if(n==0)return1;elseif(n--1)return2;elseretumfib(n-1)+fib(
下列运算符中,在C++语言中不能重载的是()。
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。该工程中包含一个程序文件main.cpp,其中有类Quadritic、类Root及主函数main的定义。一个Quadritic对象表示一个aχ2+bχ+c的一元二次多项式。一个Roo
下列关于基类和派生类关系的叙述中,正确的是()。
在一个容量为15的循环队列中,若头指针front=6,尾指针rear=9,则循环队列中的元素个数为()。
若MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列MyTemp<double>p2;MyTemp<long>p3[2];编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是()。
随机试题
腺垂体可分泌的多种激素中不包括
患者,男,21岁。患急性淋巴细胞性白血病,壮热口渴,头痛面赤,咽喉肿痛,时有鼻衄,便秘,舌红绛,苔黄,脉洪大,其证型是
女,45岁。肥胖多年,口渴5个月,尿糖(+),空腹血糖7.9mmol/L,饭后2小时血糖12.1mmol/L。下述哪一组生化指标,达到血糖临床“满意”控制
女性,37岁,怀孕后仍忙着装修新居和搬家。今晨收拾物品时突然出现腰部剧痛,不敢活动,被诊断为腰椎间盘突出症。10年前患者曾有腰椎外伤史。导致本次发病最基本的病因是
1岁小儿,因气管异物窒息入院。治疗中并发脑水肿,遵医嘱使用20%的甘露醇。护士向家长解释使用此药物的作用是()
“是故学然后知不足,教然后知困。知不足,然后能自反也;知困,然后能自强也。故日:教学相长也。”这句话出自()。
依次填入下列横线处的词语,最恰当的一组是()英国《卫报》的一篇评论曾这样写道:“19世纪,英国教会世界如何_________;20世纪,美国教会世界如何_________;如果中国要_________21世纪,它必须教会世界如何可持续发展
科学发展观是马克思主义关于发展的()的集中体现。
用高压锅煮粥,熄火后用冷水将锅冷却,拿去限压阀后打开锅盖,可以看到锅内的粥仍在沸腾。普通铝锅却看不到这样的现象。对此,下列说法中正确的是:
Boysandgirls,neverforgetthatyoueducateyourselves.Schools,booksandteachersarehelps,butyouhavetodothework.On
最新回复
(
0
)