C语言程序设计第四次作业.doc

上传人:自*** 文档编号:126224697 上传时间:2020-03-23 格式:DOC 页数:6 大小:33.50KB
返回 下载 相关 举报
C语言程序设计第四次作业.doc_第1页
第1页 / 共6页
C语言程序设计第四次作业.doc_第2页
第2页 / 共6页
C语言程序设计第四次作业.doc_第3页
第3页 / 共6页
C语言程序设计第四次作业.doc_第4页
第4页 / 共6页
C语言程序设计第四次作业.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《C语言程序设计第四次作业.doc》由会员分享,可在线阅读,更多相关《C语言程序设计第四次作业.doc(6页珍藏版)》请在金锄头文库上搜索。

1、“C+语言程序设计”课程作业第四次作业一、 填空题1. 在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的数使其初始化。2. 当一个类对象被撤消时将自动调用该类的析构函数。3. 对基类数据成员的初始化是通过执行派生类构造函数中的初始化表来实现的。4. 对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的赋值语句实现。5. 在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序的先基类成员,后类对象成员,最后 非对象成员 。6. 当撤消一个含有基类和类对象成员的派生类对象时,将首先完成派生类本身的析构函数定义体的执行,接着完成类对象成员

2、的析构函数定义体的执行,最后完成基类成员的析构函数定义体的执行。7. 设PX是指向一个类动态对象的指针变量,则执行“delete px;”语句时,将自动调用该类的析构函数。8. 当一个类对象离开它的作用域时,系统将自动调用该类的析构函数。9. 假定一个类对象数组为AN,当离开它的作用域时,系统自动调用该类析构函数的次数为析构函数。10. 假定AB为一个类,则执行“AB a10;”语句时,系统自动调用该类构造函数的次数为 10次 。11. 假定拥护没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为 构造函数 。12. 假定用户没有给一个名为AB的类定义析构函数,则系统为其隐含定义

3、的析构函数为析构函数。13. 若需要把一个函数“void f(); ”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句: friendvoidf() 14. 若需要把一个类AB定义为一个类CD的友元类,则应在类CD的定义中加入一条语句:friendclassAB 。假定一个类AB中有一个静态整型成员bb,在类外的它进行定义并初始化为0时,所使用写法为: AB:bb=0; 15. 假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员 bb的访问为 AB:bb 。16. 当类中一个字符指针成员指向具有n个字节的储存空间时,它所能储存字符串的最大长度为 n-1 。1

4、7. 假定AB为一个类,则该类的拷贝构造函数的声明语句为 AB:AB(AB&) 。18. 对类对象成员初始化是通过执行构造函数中的 初始化表 完成的。19. 对于类中定义的成员,其隐含访问权限为 private ,对于结构中定义的成员,其隐含访问权限为 public 。20. 一个类的友元函数或友元类能够通过成员操作符访问该类的 所有数据成员和函数成员 。21. 假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: AB operator+(AB,AB); 。22. 在C+流类库中,根基类为 ios 。23. 在C+流类库中,输入流类和

5、输出流类的名称分别为 istream 和 ostream 。24. 若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用 iosteam.h 头文件。25. 若要在程序文件中进行文件输入输出操作,则必须在开始的#include命令中使用 fstream.h 头文件。26. 当从字符文件中读取回车和换行两个字符时,被系统看作为一个 换行符 。27. 当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 读取的文本文件 ,当使用ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 写入的文本文件 。28. 当需要使用

6、istream流类定义一个流对象并联系一个字符串时,应在文件开始使用#include命令,使之包含 Strstrea. 文件。二给出下列程序运行后的输出结果1#includeclass A int a,b;public: A( ) a=b=0;A( int aa, int bb) a=aa; b=bb; couta bendl;void main( ) A x,y(6,3), z(8,10);运行结果:6 3 8 10 2#includeclass Aint a, b;public:A(int aa= 0, int bb= 0): a(aa),b(bb)cout”Constructor!” a

7、 + bendl;void main()A x, y(2,5), z(y);运行结果: Constructor!0Constructor!73#include class Aint * a;public:A(int aa= 0)a = new int(aa);cout”Constructor!” * aendl;void main()A x2;A * p = new A(5);delete p; 运行结果: Constructor!0Constructor!0Constructor!54#includeclass Aint a;public:A(int aa= 0): a(aa)A()cout

8、”Destructor!” a endl; ; void main()A x(5);A * p = new A(10);delete p;运行结果: Destructor!10Destructor!55#includeclass A int * a;public:A(int x)a = new int(x);cout”Constructor!” * aendl;A()delete a;cout”Destructor!”endl;void main()A x(9),* p;p = new A(12);delete p;运行结果: Constructor!9Constructor!12Destru

9、ctor!Destructor!6#includeclass Aint a;public:A(int aa= 0): a(aa)cout”Constructor A!” aendl;class B:public Aint b;public:B(int aa, int bb): A(aa), b(bb)cout”Constructor B!” bendl;void main()B x(2,3),y(4,5);运行结果: Constructor A!2Constructor B!3Constructor A!4Constructor B!57#include class Aint a;public

10、:A(int aa= 0)a = aa;A()cout”Destructor A!” aendl;class B:public Aint b;public:B(int aa= 0, int bb= 0): A(aa)b = bb;B()cout”Destructor B!”bendl;void main()B x(5),y(6,7);运行结果: Deconstructor B!7Deconstructor A!6Deconstructor B!0Deconstructor A!58#include #include class Aint a,b;char op;public:A(int aa,

11、 int bb, char ch)a = aa;b = bb;op = ch;int Comp()switch(op)case + :return a + b;case - :return a -b;case * :return a * b;case / :if(b!=0)return a/b;else exit(1);case % :if(b!=0)return a%b;else exit(1);default:exit(1);void SetA(int aa, int bb, char ch)a = aa;b = bb;op = ch;void main(void)A x(3,5,*);i

12、nt a = x.Comp();x.SetA(4,9, +);a += x. Comp();x.SetA(13,8, %);a += x. Comp();cout a = a endl;运行结果: a=339#includeclass Bint a,b;public:B()a = b = 0;B(int aa, int bb)a = aa;b = bb;B operator +(B& x)B r;r.a = a + x.a;r.b = b + x.b;return r;B operator -(B& x)B r;r.a = a - x.a;r.b = b - x.b;return r;void

13、 OutB()cout a b endl; void main()B x(6,5),y(13,3), z1, z2;z1 = x + y;z2 = x - y;z1.OutB();z2.OutB();运行结果: 19 8-7 210#includetemplateclass FFTT a1,a2,a3;public:FF(TT b1, TT b2, TT b3)a1 =b1;a2 =b2;a3 =b3;TT Sum()return a1 + a2 + a3;void main()FF x(8,3,4),y(5,9,11);cout x. Sum() y. Sum()endl;运行结果: 15 25二、 写出下列每个函数的功能1#include #include #include void JA(char * fname) / /可以把fname所指字符串作为文件标识符的文件称为fname文件ofstream fout(fname);char a20;cin

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号