首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用【答题】菜单命令或直接用VO6打开考生文件夹下的工程prog3,其中声明了ViArray类,该类在内部维护一个动态分配的整型数组。VaLArray类的复制构造函数应实现对象的深层复制。请编写VaLArray类的复制构造函数。在main函数中给出了一组
请使用【答题】菜单命令或直接用VO6打开考生文件夹下的工程prog3,其中声明了ViArray类,该类在内部维护一个动态分配的整型数组。VaLArray类的复制构造函数应实现对象的深层复制。请编写VaLArray类的复制构造函数。在main函数中给出了一组
admin
2017-07-04
23
问题
请使用【答题】菜单命令或直接用VO6打开考生文件夹下的工程prog3,其中声明了ViArray类,该类在内部维护一个动态分配的整型数组。VaLArray类的复制构造函数应实现对象的深层复制。请编写VaLArray类的复制构造函数。在main函数中给出了一组测试数据,此种情况下程序的输出应该是:
ValArray v1={1,2,3,4,5}
ValArray v2={1,2,3,4,5}
要求:
补充编制的内容写在“//**********333**********”与“//**********666**********”之间,不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为boj文件,并且在本程序中调用。
//ValArray.h
#include
us ing namespace std;
class ValArray{
int*v;
int Size;
public:
ValArray(const int*P,int n):
size(n)
{
v=new int[size];
for(int i=0;i
v
=P
;
}
ValArray(const ValArray&other);
一ValArray(){delete[]v;}
void print(ostream&out)const
{
out<<’{’;
for(int i=0;i
out<
<<”,”;
out <
}
void setArray(int i,int val)
{
v
=val;
}
};
void writeTOFile(const char*);
//main.cpp
#include”ValArray.h”
ValArray::ValArray(const ValArray&
other)
{
//********333********
//********666********
}
int main()
{
const int a[]={1,2,3,4,5};
ValArray vl(a,5);
cout<<”ValArray v1=”;
v1.print(cout);
cout<
ValArray v2(v1);
cout<<”ValArray v2=”;
v2.print(cout);
cout<
writeToFile(””);
return 0;
}
选项
答案
size =other.size; V=new int [slze]; for(int i=0;i
解析
主要考查考生对复制构造函数的掌握,ValArray类的复制构造函数应实现对象的深层复制。由ValArray类的构造函数:
ValArray(const int* p,int n) :size
(n)
{
v=new int[size];
//给v分配大小为size的空间
for (int i =0; i < size; i++)
//遍历p
v
=p
;
//把p
赋值给v
}
可知类中v是动态数组,size表示数组长度,因此要先给v分配空间为size,再逐个元素复制以达到对象的深层复制。
转载请注明原文地址:https://jikaoti.com/ti/gJt0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序 main() {int n=9; while(n>6)<n--; cout<<n<<endl;} } 该程序段的辅出结果是
下列程序中需要清理动态分配的数组,划线处应有的语句是【 】。#include<iostream,h>classperson{intage,tall;public:person(){age=0;tall=40;co
下列程序编译时发现pb->f(10);语句出现错误,其原因是【 】。#include<iostream.h>classBase{public:voidf(intx){cout<<"Base:"<<
以下不是数据库系统组成部分的是( )。
设单链表中结点的结构为(data,link)。已知指针q所指结点是指针p所指结点的直接前驱,若在*q与*p之间插入结点*s,则应执行下列哪一个操作?( )。
函数定义的格式是【 】函数名(形式参数表)函数体。
将7个数据进行插入排序,在最坏情况下需要比较的次数是
如下类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函数的声明完整。classmyClass{private:intdata;public:myClass(in
C++本身没有定义I/O操作,但I/O操作包含在C++实现中。C++标准库iostream提供了基本的I/O类。I/O操作分别由类istream和()提供。
数据流图采用4种符号表示______、数据源点和终点、数据流向和数据加工。
随机试题
法人的跨国移动的方式。
国际商务谈判与一般贸易谈判相比有其特殊性,主要表现在()
关于免疫球蛋白,下列描述错误的是
制备甘草流浸膏,选择何种浸出辅助剂可增加甘草酸的浸出
以下哪种情况最不可能设计单端固定桥
关于地面垫层的适用范围和构造要求,下列哪一项表述是错误的?[2003年第098题]
失业类型分为()。
Socialchangeismorelikelytooccurinsocietieswherethereisamixtureofdifferentkindsofpeoplethaninsocietieswhere
美育就是指艺术教育。
过去几年里,移动支付市场在中国蓬勃发展。随着移动互联网的出现,手机购物逐渐成为一种趋势。18到30岁的年轻人构成了移动支付市场的最大群体。由于现在用手机付款很容易,许多消费者在购物时宁愿用手机付款,而不愿用现金或信用卡。为了鼓励人们多消费,许多商店给使用移
最新回复
(
0
)