首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)完成类MyArrayClass的构造函数,申请数组的大小,请在注释//********1********后
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)完成类MyArrayClass的构造函数,申请数组的大小,请在注释//********1********后
admin
2019-06-05
54
问题
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:
(1)完成类MyArrayClass的构造函数,申请数组的大小,请在注释//********1********后添加适当的语句。
(2)完成类MyArrayClass的析构函数,释放数组,请在注释//********2********后添加适当的语句。
(3)完成重载运算符“[]”,用来获得指定下标的数据,请在注释//********3********后添加适当的语句。
(4)完成函数SetElement(),用来设置指定下标的数据。如果数据没有超出范围,则设置数据,并返回1,否则返回0,请在注释//********4********后添加适当的语句。
注意:除在指定的位置添加语句外,并不要更改程序中的其他语句。
1 #include<iostream.h>
2 template<class T>
3 class MyArrayClass
4 {
5 private:
6 T* data;
7 int length;
8 public:
9 MyArrayClass(int len)
10 {
11 length=len;
12 //********1********
13
14 }
15 ~MyArrayClass()
16 {
17 //********2********
18
19 }
20 T& operator[](int i)
21 {
22 //********3********
23
24 }
25 bool SetElement(int i,T t)
26 {
27 //********4********
28 if()
29 {
30 data
=t;
31 return true;
32 }
33 return false;
34 }
35 };
36 int main()
37 {
38 MyArrayClass<int>obj(5);
39 obj[3]=1;
40 cout<<obj.SetElement(5,2)<<end1;
41 cout<<obj.SetElement(4,2)<<end1;
42 return 0;
43 }
选项
答案
(1)添加语句:data=new T[len]; (2)添加语句:delete[]data; (3)添加语句:return data[i]; (4)将“if()”补充完整为:if(i<length)
解析
程序中定义了类模板MyArrayClass,含有成员变量length和data指针,构造函数、析构函数、重载运算符“[]”和SetElement()函数。构造函数中申请内存空间给data指针,析构函数中释放内存资源,重载运算符“[]”用来获得指定下标的数据,SetElement()用来设置指定下标的数据。
(1)构造函数完成成员变量的初始化,在MyArrayClass(int len)函数中申请数组的大小的内存空间,应该用new申请动态存储空间,new返回一个指向其操作数类型变量的指针,第1个标识下即将new返回的指针赋值给data指针,因此第1个标识下应添加“data=new T[len];”。
(2)析构函数完成资源的释放,删除由new申请的内存资源,因此第2个标识下应添加“delete[]data;”。
(3)T&operator[](int i)函数重载运算符“[]”,返回指定下标的数据,因此第3个标识下应添加“returndata
;”。
(4)SetElement(int i,T t)是设置指定下标的数据,数组下标不能超限,函数体中的if()用来判断下标位置是否超限,因此第4个标识下应添加“if(i<length)”。
转载请注明原文地址:https://www.kaotiyun.com/show/418p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序:#include<iostream>usingnamespacestd;classTestClass{staticinti;public:TestClass(){i++;
有如下类声明:classTestClass{intn;public:TestClass(inti=0):n(i){}voidsetValue(intn0);};
函数Min的功能是返回具有n个元素的数组array中的最小值。请将横线处的缺失部分补充完整,使得程序的输出结果为1.24。#include<iostream>usingnamespacestd;template<typename
下列程序的输出结果为12.324.6,请将横线处的缺失部分补充完整。#include<iostream>usingnamespacestd;classBase{public:Base(intA):id
请在横线处填写派生类Derived的继承方式,使得程序的输出结果为Base。#include<iostream>usingnamespacestd;classBase{public:voidprint(){c
定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。A)-369B)369C)0.369D)整数集合{1,2,3,4,5}
若目前D盘根目录下并不存在test.txt文件,则下列打开文件方式不会自动创建test.txt文件的是()。A)ifstreamfin;fin.open("d:\\test.txt",ios_base::in);B)fstream
己知函数f的原型是“voidf(int*x,int&y);”,变量v1、v2的定义是“intv1,v2;”,下列调用语句中,正确的是()。A)f(v1,v2);B)f(v1,&v2);C)f(&v1,v2);D)f(
软件危机出现于60年代末,为了解决软件危机,人们提出了______的原理来设计软件,这就是软件工程诞生的基础。
在C++语言中,打开一个文件就是将这个文件与一个什么建立关联?
随机试题
或有事项应确认为预计负债需要满足的条件包括()。
受均布荷载的简支梁,长度为L,剪力最大的截面为()。
会计职业道德对会计法律制度起着辅助和补充作用。 ( )
某企业在经营期间,欠缴应纳税款,采取转移财产的手段,致使税务机关无法追缴欠缴的税款2万余元,对此案的正确定性和处理应为()。
()是企业为了招募、甄选和录用所需要的人力资源而发生的各种相关费用的总和,主要包括招聘人员的直接或间接劳务费用、直接或间接业务费用、其他相关费用等。
美育
在中国美术史上,这是特殊的一页。在近十余年里,从现代艺术之父塞尚的作品开始,到西方当下的艺术形态,一百余年来,西方世界流行的所有艺术形式以及引发它们或它们引发的艺术思潮,几乎都在中国艺术舞台上粉墨登场——印象派、野兽派、抽象派、立体主义、未来主义
膀胱结石的典型症状是
计算机网络在逻辑功能上可以分为
WhatdidGregRotaprobablydointheend?WhatdidtheschoolofficialsdoafterreceivingthecheckfromMr.LeBermuth?
最新回复
(
0
)