首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请打开考生文件夹下的解决方案文件ptoj3,此工程中包含一个源程序文件proj3.cpp,其功能是从文本文件in.dat中读取全部整数,将整数序列存放到intArray类的对象中,然后建立另一对象myArray,将对象内容赋值给myArray。类intAr
请打开考生文件夹下的解决方案文件ptoj3,此工程中包含一个源程序文件proj3.cpp,其功能是从文本文件in.dat中读取全部整数,将整数序列存放到intArray类的对象中,然后建立另一对象myArray,将对象内容赋值给myArray。类intAr
admin
2021-07-02
45
问题
请打开考生文件夹下的解决方案文件ptoj3,此工程中包含一个源程序文件proj3.cpp,其功能是从文本文件in.dat中读取全部整数,将整数序列存放到intArray类的对象中,然后建立另一对象myArray,将对象内容赋值给myArray。类intArray重载了“=”运算符。程序中给出了一个测试数据文件input,不超过300个的整数。程序的输出是:
10
11
13
16
20
要求:
补充编制的内容写在“//**********333**********”与“//********666********”之间。实现重载赋值运算符函数,并将赋值结果在屏幕输出。格式不限。不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。
//intArray.h
class intArray
{
private:
int * array;
int length;
public:
intArray(char * filename);
intArray();
intArray & operator=( const intArray & src);
~intArray();
void show();
};
void writeToFile(const char * path);
//main.cpp
#include<iostream>
#include<fstream>
#include<cstring>
#include"intArray.h"
using namespace std;
intArray::intArray()
{
length=10;
array=new int[length];
}
intArray:: intArray (char * filename)
{
ifstream myFile(filename);
array=new int[300];
length=0;
while(myFile>>array[length++])
length--;
myFile.close();
}
intArray& intArray::operator=(const intArray & src)
{
if(array!=NULL)delete[]array;
length=src.length;
array=new int[length];
//*************333***********
//************666***********
return * this;
}
intArray::~intArray()
{
delete[]array;
}
void intArray::show()
{
int step=0;
for(int i=0;i<length;i=i+step)
{
cout<<array
<<endl;
step++;
}
}
void main()
{
intArray * arrayP=new intArray("input.dat");
intArray myArray;
myArray=* arrayP;
(* arrayP).show();
delete arrayP;
writeToFile("");
}
选项
答案
1 for(int i=0;i <length;i++) //遍历对象src中的数组array, 然后依次把值放进数组arrav中 2 array[i] =src.array[i];
解析
主要考查考生对运算符重载的掌握,该函数要重载运算符“=”,该运算符的意思是赋值。先看该函数的其他语句:
if(array!=NULL)delete[]array;
length=src.length;
array=new int[1ength];
第一条语句是把原来动态数组释放,第二条语句是把形参src的成员length赋值给变量length,第三条语句是给指针array分配内存。接下来要把动态数组中的值逐个赋给array数组,在这里使用for循环语句,循环变量i的范围是0~length,并进行赋值操作。
转载请注明原文地址:https://kaotiyun.com/show/kefp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
在类中重载赋值运算符时,应将其声明为类的()。
以下程序的执行结果是()。#include<iostream.h>#include<iomanip.h>voidfun(intn){if(n!=0){fun(n-1);
下列运算符中,不能被重载的是()。
已知递归函数fun的定义如下:intfun(intn){if(n<=1)return1;//递归结束情况elsereturnn*fun(n-2);//递归}则函数调用语句fun(5)的返回值是(
有如下程序段:inti=1;while(1){i++;if(i==10)break;if(i%2==0)cout<<’*’;}执行这个程序段输出字符*的个数是()。
下列关于类模板的模板参数的叙述中,错误的是()。
下列是重载乘法运算符的函数原型声明,其中错误的是()。
下列关于继承方式的描述中,错误的是()。
在数据处理中,其处理的最小单位是()。
在学生管理的关系数据库中,存取一个学生信息的数据单位是()。
随机试题
劳动技术教育的内容有哪些?
阅读《冯谖客孟尝君》中的一段文字,回答问题。后期年,齐王谓孟尝君曰:“寡人不敢以先王之臣为臣。”孟尝君就国于薛。未至百里,民扶老携幼,迎君道中。孟尝君顾谓冯谖曰:“先生所为文市义者,乃今日见之。”冯谖曰:“狡兔有三窟,仅得免其死耳。令君有一窟,未
肝脏不能利用的物质是
70岁,男性患者,表情呆板,动作缓慢,右手不自主震颤,长期服用左旋多巴;同时患有前列腺肥大。近半年出现病情波动,症状多于服药前加重
患者患痫证日久,近期频繁发作,兼见心神不安,心悸,失眠健忘,舌淡苔白,脉滑。治疗应选用
下列各项中,不属于会计职业道德主要作用的是()。
贷款的计息方式有()。
下列建筑工程成本合同形式中。发包方承担了通货膨胀风险,而承包方承担了实物工程量、成本等风险的是()。
EDI常被称作电子贸易或无纸贸易。()
查询客户名称中有"网络"二字的客户信息的正确SQL命令是( )。
最新回复
(
0
)