2023年电大形成性考核册c++第四次作业及答案_第1页
2023年电大形成性考核册c++第四次作业及答案_第2页
2023年电大形成性考核册c++第四次作业及答案_第3页
2023年电大形成性考核册c++第四次作业及答案_第4页
2023年电大形成性考核册c++第四次作业及答案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机应用专业“C++语言程序设计”课程作业第四次作业填空题在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的_构造函数_____使其初始化。当一个类对象被撤消时将自动调用该类的__析构函数_________。对基类数据成员的初始化是通过执行派生类构造函数中的__初始化表_____来实现的。对一个类中的数据成员的初始化可以通过构造函数中的_初始化表___实现,也可以通过构造函数中的__赋值语句________实现。在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化顺序的先基类成员,后类对象成员,最后非对象成员。当撤消一个具有基类和类对象成员的派生类对象时,将一方面完毕派生类自身的析构函数定义体的执行,接着完毕类对象成员的析构函数定义体的执行,最后完毕基类成员的析构函数定义体的执行。设PX是指向一个类动态对象的指针变量,则执行“deletepx;”语句时,将自动调用该类的析构函数。当一个类对象离开它的作用域时,系统将自动调用该类的析构函数。假定一个类对象数组为A[N],当离开它的作用域时,系统自动调用该类析构函数的次数为N次。假定AB为一个类,则执行“ABa[10];”语句时,系统自动调用该类构造函数的次数为10次。假定拥护没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为空构造函数。假定用户没有给一个名为AB的类定义析构函数,则系统为其隐含定义的析构函数为空析构函数。若需要把一个函数“voidf();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句:friendvoidf();。若需要把一个类AB定义为一个类CD的友元类,则应在类CD的定义中加入一条语句:friendclassAB;。假定一个类AB中有一个静态整型成员bb,在类外为它进行定义并初始化为0时,所使用写法为AB:bb=0;。假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为AB:bb。当类中一个字符指针成员指向具有n个字节的储存空间时,它所能储存字符串的最大长度为n-1。假定AB为一个类,则该类的拷贝构造函数的声明语句为AB:AB(AB&)。对类对象成员初始化是通过执行构造函数中的初始化表完毕的。对于类中定义的成员,其隐含访问权限为private,对于结构中定义的成员,其隐含访问权限为public。一个类的友元函数或友元类可以通过成员操作符访问该类的所有数据成员和函数成员。假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:ABoperator+(AB,AB);。在C++流类库中,根基类为ios。在C++流类库中,输入流类和输出流类的名称分别为istream和ostream。若要在程序文献中进行标准输入输出操作,则必须在开始的#inlude命令中使用iosteam.h头文献。若要在程序文献中进行文献输入输出操作,则必须在开始的#inlude命令中使用fstream.h头文献。当从字符文献中读取回车和换行两个字符时,被系统看作为一个换行符。当使用ifstream流类定义一个流对象并打开一个磁盘文献时,文献的隐含打开方式为读取的文本文献,当使用ofstream流类定义一个流对象并打开一个磁盘文献时,文献的隐含打开方式为写入的文本文献。当需要使用istrstream流类定义一个流对象并联系一个字符串时,应在文献开始使用#include命令,使之包含strstrea.h文献。二.给出下列程序运营后的输出结果1.#include<iostream.h>classA{inta,b;public:A(){a=b=0;}A(intaa,intbb){a=aa;b=bb;cout<<a<<’’<<b<<endl;}};voidmain(){Ax,y(6,3),z(8,10);}638102.#include<iostream.h>classA{inta,b;public:A(intaa=0,intbb=0):a(aa),b(bb){cout<<"Constructor!"<<a+b<<endl;}};voidmain(){Ax,y(2,5),z(y);}Constructor!0Constructor!73.#include<iostream.h>classA{int*a;public: A(intaa=0)ﻩ{ ﻩa=newint(aa); ﻩcout<<"Constructor!"<<*a<<endl; }};voidmain(){ Ax[2];ﻩA*p=newA(5);ﻩdeletep;}Constructor!0Constructor!0Constructor!54.#include<iostream.h>classA{ﻩinta;public: A(intaa=0):a(aa){} ~A(){cout<<"Destructor!"<<a<<endl;}};voidmain(){ﻩAx(5); A*p=newA(10);ﻩdeletep;}Destructor!10Destructor!55.#include<iostream.h>classA{int*a;public:ﻩA(intx) {ﻩ a=ne(x);ﻩ cout<<"Constructor!"<<*a<<endl;ﻩ}ﻩ~A(){deletea;cout<<"Destructor!"<<endl;}};voidmain(){ﻩAx(9),*p;ﻩp=newA(12); deletep;}Constructor!9Constructor!12Destructor!Destructor!6.#include<iostream.h>classA{ inta;public: A(intaa=0):a(aa) {ﻩﻩcout<<"ConstructorA!"<<a<<endl;ﻩ}};classB:publicA{ﻩintb;public:ﻩB(intaa,intbb):A(aa),b(bb)ﻩ{ ﻩcout<<"ConstructorB!"<<b<<endl; }};voidmain(){ﻩBx(2,3),y(4,5);}ConstructorA!2ConstructorB!3ConstructorA!4ConstructorB!57.#include<iostream.h>classA{ inta;public: A(intaa=0){a=aa;}ﻩ~A(){cout<<"DestructorA!"<<a<<endl;}};classB:publicA{intb;public: B(intaa=0,intbb=0):A(aa){b=bb;} ~B(){cout<<"DestructorB!"<<b<<endl;}};voidmain(){ Bx(5),y(6,7);}DeconstructorB!7DeconstructorA!6DeconstructorB!0DeconstructorA!58.#include<iostream.h>#include<stdlib.h>classA{ﻩinta,b;charop;public:ﻩA(intaa,intbb,charch){a=aa;b=bb;op=ch;} intComp()ﻩ{ﻩ switch(op) {ﻩ case'+':returna+b;ﻩ ﻩcase'-':returna-b;ﻩ ﻩcase'*':returna*b; ﻩcase'/':if(b!=0)returna/b;elseexit(1);ﻩﻩ case'%':if(b!=0)returna%b;elseexit(1); ﻩﻩdefault:exit(1);ﻩﻩ}ﻩ}ﻩvoidSetA(intaa,intbb,charch)ﻩ{ﻩﻩa=aa;b=bb;op=ch;ﻩ}};voidmain(void){ﻩAx(3,5,'*'); inta=x.Comp();ﻩx.SetA(4,9,'+'); a+=x.Comp();ﻩx.SetA(13,8,'%'); a+=x.Comp();ﻩcout<<"a="<<a<<endl;}a=339.#include<iostream.h>classB{ inta,b;public: B(){a=b=0;} B(intaa,intbb){a=aa;b=bb;}ﻩBoperator+(B&x) {ﻩﻩBr; r.a=a+x.a; r.b=b+x.b;ﻩﻩreturnr; } Boperator-(B&x) { Br; r.a=a-x.a;ﻩﻩr.b=b-x.b;ﻩﻩreturnr; }ﻩvoidOutB()ﻩ{ﻩﻩcout<<a<<''<<b<<endl; }};voidmain(){ﻩBx(6,5),y(13,3),z1,z2;ﻩz1=x+y;ﻩz2=x-y;ﻩz1.OutB();ﻩz2.OutB();}198-7210.#include<iostream.h>template<classTT>classFF{TTa1,a2,a3;public:FF(TTb1,TTb2,TTb3){a1=b1;a2=b2;a3=b3;}TTSum(){returna1+a2+a3;}};voidmain(){FF<int>x(8,3,4),y(5,9,11);cout<<x.Sum()<<''<<y.Sum()<<endl;}1525写出下列每个函数的功能1.#include<iomanip.h>#include<fstream.h>#include<string.h>voidJA(char*fname)//可以把fname所指字符串作为文献标记符的文献称为fname文献{ofstreamfout(fname);chara[20];cin>>a;whlie(strcmp(a,”end”)!=0){fout<<a<<endl;cin>>a;}}将键盘输入的字符串(上限为19个字符)写入到fname文献中。2.#include<iomanip.h>#include<fstream.h>voidJB(char*fname)//可把以fname所指字符串作为文献标记符的文献称为fname文献//假定该文献中保存着一批字符串,每个字符串的长度均小于20。{ifstreamfin(fname);chara[20];inti=0;whlie(fin>>a){cout<<a<<endl;i++;}fin.close();cout<<”i=”<<i<<endl;}将fname文献输出到标准输出流(屏幕)上,最后显示字符串的数量。3.#include<iomanip.h>#include<fstream.h>voidJC(chat*fname,intn)//可把以fname所指字符串作为文献标记符的文献称为fname文献{ofstreamfout(fname,ios::out|ios::binary);intx;for(inti=0;I<n;I++){cin>>x;fout.write((char*)&x,sizeof(x));}fout.close();}从键盘输入n个数,并以二进制的方式写到fname文献中。4.#include<iomanip.h>#include<fstream.h>voidJD(char*fname)//可把以fname所指字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论