首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请打开考生文件夹下的解决方案文件proj3,其中声明的CDeepCopy是一个用于表示矩阵的类。请编写这个类的赋值运算符成员函数operator=,以实现深层复制。 要求: 补充编制的内容写在“//**********333********
请打开考生文件夹下的解决方案文件proj3,其中声明的CDeepCopy是一个用于表示矩阵的类。请编写这个类的赋值运算符成员函数operator=,以实现深层复制。 要求: 补充编制的内容写在“//**********333********
admin
2020-12-21
102
问题
请打开考生文件夹下的解决方案文件proj3,其中声明的CDeepCopy是一个用于表示矩阵的类。请编写这个类的赋值运算符成员函数operator=,以实现深层复制。
要求:
补充编制的内容写在“//**********333**********”与“//**********666**********”之间。不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj义件,并且在本程序中调用。
//CDeepCopy.h
#includc
#include
using namespace std;
class CDeepCopy
{
public:
int n;//动态数组的元素个数
int *p;//动态数组首地址
CDeepCopy(int);
~CDeepCopy();
CDeepCopy&operator=(eonst 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[O]=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(““);
rctum 0;
}
选项
答案
n=r.n;//把对象r字符长度赋值给n delete[]p;//删除动态数组p p=new int[n];//给动态数组p分配空间为“ for(int i=0;i<n;i++)//遍历对象r中的数组p pi:=r.p:[i]; //把r.p[i]赋值给p[i] return*this;//返回被赋值的对象
解析
本题考查CDeepCopy类,其中涉及动态数组、构造函数、析构函数和运算符重载。运算符重载要先把类的定义弄清,其次要理解被重载的运算符的含义。主要考查考生对运算符重载的掌握,由注释可知此处要实现赋值运算符函数。要重载的运算符是“=”,该类的成员是动态数组p,数组元素个数为n,因此先释放原来的动态数组,再分配空间,然后逐个复制元素即可。
转载请注明原文地址:https://www.kaotiyun.com/show/vdyp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序: #include<iostream> using namespace std; int main() { cout.fill(’*’) cout.width(6); cout.
下列关于赋值运算符“=”重载的叙述中,正确的是
下列是重载乘法运算符的函数原型声明,其中错误的是
执行语句序列 ofstream outfile(”DATA.DAT"); if(…)cout<<"OK";elsec out<<"FAIL"; 后,如果文件打开成功显示“OK”,否则就显示“FAIL”。由此可知,上面if语句的…处的表达式
有如下程序:#includeusingnamespacestd;classC1{public:-Cl()}cout
有如下类定义:classAA{inta;public:AA(intn=0):a(n){}};classBB:publicAA{public:BB(intn)______};
定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为( )。
使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正确运行,并且使程序输出的结果为:30130注意:错误的语句在//*****error******的下面,修改该语句即可。#
若在表达式y/x中,’’/’’是作为成员函数重载的运算符,则该表达式还可以表示为()。
下列字符串中,不可以用做C++标识符的是()。
随机试题
Theconference______afullweekbythetimeitends.
产力的主要力量是
30岁男性,3日前因着凉,突然寒战高热,右胸刺痛,咳嗽,伴少许黄痰。体检:气管居中,右上肺实变体征该患病程中出现呼吸困难、发绀等缺氧表现,其发生机制主要为
某女,53岁,2小时前突然发现右半身麻木,口角歪斜,言语不利。现神志清,头晕目眩,苔白腻,脉弦滑。其诊断是()
番泻叶基部的特点是
A.香树脂B.油树脂C.胶树脂D.油胶树脂E.混合树脂按照上述所含主要化学成分,下列中药属于乳香
依据中国银监会颁布的《商业银行风险监管核心指标》(试行),风险监管核心指标主要类别包括( )。
在供应链管理方法中,()是供应链上的生产商、批发商和零售商等通过合作和协调,以更好的质量、更快的速度和更低的成本满足消费者需求的一种管理方法。
《旅游法》共()。
A、交通B、环境C、价格D、大小C根据男的说的“就是有点儿贵”,可知男的对房子的价格不满意,所以选C。
最新回复
(
0
)