平时实习题目-答案

上传人:博****1 文档编号:508017782 上传时间:2023-02-06 格式:DOC 页数:15 大小:348.01KB
返回 下载 相关 举报
平时实习题目-答案_第1页
第1页 / 共15页
平时实习题目-答案_第2页
第2页 / 共15页
平时实习题目-答案_第3页
第3页 / 共15页
平时实习题目-答案_第4页
第4页 / 共15页
平时实习题目-答案_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《平时实习题目-答案》由会员分享,可在线阅读,更多相关《平时实习题目-答案(15页珍藏版)》请在金锄头文库上搜索。

1、第一次1、 问题的提出:编写程序熟悉拷贝函数的三种用法。理解临时对象的概念,并知道它的作用、何时被创建、何时被析构。补充:同时请尝试派生类的拷贝构造函数的三种调用与析构。#include stdafx.h#includeusing namespace std;class Basepublic:Base()cout 基类构造函数被调用。endl;Base(Base &p)cout 基类拷贝构造函数被调用。endl;Base()cout 基类析构函数被调用。endl;class Paisheng:public Basepublic:Paisheng()cout 派生类构造函数被调用。endl;Pa

2、isheng(Base &p)cout 派生类拷贝函数被调用。endl;Paisheng()cout 派生类析构函数被调用。endl;void fun1(Base p)Base fun2()cout在fun2开始建立基类对象base_obj用于返回.endl;Base basefun_obj;cout建立基类对象base_obj成功。endl;cout开始返还基类对象.endl;return basefun_obj;Paisheng fun3()cout在fun3开始建立派生类对象pai_obj用于返回.endl;Paisheng paifun_obj;cout建立基类对象pai_obj成功。

3、endl;cout开始返还派生类对象.endl;return paifun_obj;int main()cout开始建立基类对象base_obj1.endl;Base base_obj1;cout建立基类对象base_obj1成功。nendl;cout开始建立基类对象base_obj2,用已有基类对象base_obj1初始化.endl;Base base_obj2(base_obj1);cout建立基类对象base_obj2成功。nendl;cout开始调用函数Fun1,用基类对象base_obj1作为实参传递.endl;fun1(base_obj1);cout基类对象为实参调用函数fun1成

4、功。nendl;cout开始调用函数Fun2,返回值为基类对象.endl;fun2();cout基类对象作为返回值调用函数fun2成功。nendl;coutendl;cout开始建立派生类对象pai_obj1.endl;Paisheng pai_obj1;cout建立派生类对象pai_obj1成功。nendl;cout开始建立派生类对象pai_obj2,用已有派生类对象pai_obj1初始化.endl;Paisheng pai_obj2(pai_obj1);cout建立派生类对象pai_obj2成功。nendl;cout开始调用函数Fun1,用派生类对象pai_obj1作为实参传递.endl;

5、fun1(pai_obj1);cout派生类对象为实参调用函数fun1成功。nendl;cout开始调用函数Fun3,返回值为派生类对象.endl;fun3();cout派生类对象作为返回值调用函数fun3成功。nendl;coutendl;return0;调试结果:2、 问题的提出:17世纪法国数学家加斯帕的一本数学的游戏问题描述了许多有趣问题,约瑟问题就是其中之一:15名基督教徒和15名异教徒同乘一船航行,途中风浪大作,危机万分,领航者告诉大家,只要将全船的一半人投入海中,其余人就能幸免。大家都同意这个办法,并协定者30人围成一圈;由第一个人起报数,每数至第9人便把他投入海中,下一个接着从

6、1开始报数,第9人又被投入海中,依次循环,直至剩下15人为止。问题是如何排法使投入海中的人全为异教徒?补充:同时请尝试输入人数,输出人数,间隔人数均由用户输入。#include stdafx.h#includeusing namespace std;class SUANFApublic:SUANFA(int a,int b,int c)m_n=a;m_s=b;m_w=c;voidgetresult();private:int m_n,m_s,m_w;void SUANFA:getresult()inta100;inti,j,p;intk=0;for(i=0;im_n;i+)ai=1;i=0;f

7、or(k=0;km_n-m_s;k+)for(j=1;im_n;i+)if(ai!=0)j+;if(j=m_w+1)ai=0;break;if(i=m_n-1)i=-1;cout应该是坐的位置分别为:endl;for(i=0;im_n;i+)if(ai!=0)cout第(i+1) ;cout位endl;int main()intn,s;cout请输入总人数:n;cout请输入可以存活的人数:s;intw;cout请输入间隔数据:w;SUANFAa(n,s,w);a.getresult();return0;调试结果:第二次1、 对友元函数使用的尝试。#include stdafx.h#inclu

8、deusing namespace std;classApublic:A(int c=0)a=c;friendclass B;friendvoid Fun(A &);private:int a;classBpublic:B()cout类B的构造函数被调用。endl;coutobj.aendl;private:Aobj;void Fun(A &o)cout友元函数调用成功。endl;couto.aendl;int main()Aobj1;Bobj2;Fun(obj1);return0;调试结果:2、 一个基类CShape,类中含有一个纯虚函数void GetArea(); 在此基础上派生出CRe

9、ctangle类和CCircle类,实现函数GetArea()。要求:a) 构造函数需要重载,能够传入计算面积所需要的成员变量b) 将计算的面积结果能更输出,写出测试函数main().#include stdafx.h#includeusing namespace std;const double PI=3.14;class CShapepublic:CShape()cout 基类CShape的构造函数被调用。endl;virtual void GetArea()=0;CShape()cout 基类CShape的析构函数被调用。endl;class CRectangle:public CSha

10、pepublic:CRectangle(double aaa,double bbb):CShape()m_a=aaa;m_b=bbb;cout 派生类CRectangle的构造函数被调用。endl;void GetArea()cout 矩形的面积是:m_a*m_bendl;cout 派生类CRectangle的GetArea被调用。nendl;coutendl;CRectangle()cout 派生类CRectangle的析构函数被调用。endl;private:doublem_a,m_b;class CCircle:public CShapepublic:CCircle(double rrr

11、):CShape()m_r=rrr;cout 派生类CCircle的构造函数被调用。endl;void GetArea()cout 圆形的面积是:m_r*m_r*PIendl;cout 派生类CCircle的GetArea被调用。endl;cout endl;CCircle()cout 派生类CCircele的析构函数被调用。endl;private:doublem_r;int main()double aa,bb;cout请输入矩形的长和宽:aabb;cout开始建立CRectangle派生类对象obj1传参.endl;CRectangleobj1(aa,bb);cout开始建立基类指针并使其指向派生类CRectangle的对象obj1.endl;CShape*p=&obj1;coutendl;cout利用CRectangle派生类对象名使用函数.endl;obj1.GetArea();cout利用基类指针指向函数.GetArea();coutendl;double rr;cout请输入圆的半径:rr;cout开始建立派生类CCircle对象obj2并传参.endl;

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

当前位置:首页 > 高等教育 > 习题/试题

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