欢迎来到天天文库
浏览记录
ID:43928969
大小:328.91 KB
页数:12页
时间:2019-10-16
《北邮信通C上机实验八第九章》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、9.3实验题一、基础题1.在程序屮填上适当的语句,输出如图9・1的结果,并对带注解标记的语句进行功能注释。#includc#includeusingnamespacestd;classbase{char*sptr;intstr_len;public:base(char*s);//定义一个构造函数base(base&sl);//定义一个拷贝构造函数^base();intgctlcn(){returnstr_len;}voidprint(){cout<2、){str_lcn=strlcn(s);sptr=newchar[str_len+l];strepy(sptr,s);//把s的内容拷贝给sptr}base::base(base&si){str_lcn=sl.str_len;sptr=newchar[str_len+l];strepy(sptr,si.sptr);}base::"base()//定义析构函数,释放sptr{deletesptr;}voidmain(){cout<<,/这是一个构造函数重载程序z,<3、);cout<<,z第一个字符串的长度为:"《obj.getlenO<4、eam>usingnamespacestd;classbase{public:voidprintl()//{cout〈〈〃Thisisabaseclass.〃;}};classderivedl:publicbase{voidprintl()//{cout<<,zThcfirstderivation.,z;}};classderived2:publicbase{voidprintl()//{cout〈〈〃Thcsecondderivation.〃;}};voidmain(){baseal,*p;//derivedlx;//dcrivcd5、2y;//p=&al;p->printl();p二&x;p~>printl();p二&y;p->printl();Thisisabaseclass.Thisisabaseclass.Thisisabaseclass.请按任意键继续•••非虚函数:三次均执行基类函数。虚函数:分别执行基类函数,继承类1函数。继承类2函数1.阅读下列程序,修改其中的错误,运行结果应如图9-2,对带注释标记的语句进行功能注释。#include〈iostreani>usingnamespacestd;classbase{intn;public:base(){n=0;};b6、ase(inti){n二i;};baseoperator+(basec)//运算符重载{basetemp;temp.n=n+c.n;//执彳亍+操作returntemp;}voiddisp(){cout«,zn=,,«n«endl;}};voidmain(){basecl(5),c2(10),c3;c3二cl+c2;//c3的值为cl,c2和cl.disp();c2.dispO;c3.dispO;图9・2第3题的输出4•阅读F列程序,然后将构造函数date(inta,intb,intc){m=a;d=b;y=c;}换成date(intm,intd7、,inty){this->m=m;this->d=d;this->y=y;},并对运行结果进行说明#includeusingnamespacestd;staticintdys□二{31,2&31,30,31,30,31,31,30,31,30,31};classdate{intm,d,y;public:date(intm,intd,inty){this->m=m;this-〉d二d;this->y二y;}date(){}voiddisp(){cout<8、ator+(intday){datedt二*this;day+=dt.d;while(day>dys[dt.mT]){day-=dys[
2、){str_lcn=strlcn(s);sptr=newchar[str_len+l];strepy(sptr,s);//把s的内容拷贝给sptr}base::base(base&si){str_lcn=sl.str_len;sptr=newchar[str_len+l];strepy(sptr,si.sptr);}base::"base()//定义析构函数,释放sptr{deletesptr;}voidmain(){cout<<,/这是一个构造函数重载程序z,<3、);cout<<,z第一个字符串的长度为:"《obj.getlenO<4、eam>usingnamespacestd;classbase{public:voidprintl()//{cout〈〈〃Thisisabaseclass.〃;}};classderivedl:publicbase{voidprintl()//{cout<<,zThcfirstderivation.,z;}};classderived2:publicbase{voidprintl()//{cout〈〈〃Thcsecondderivation.〃;}};voidmain(){baseal,*p;//derivedlx;//dcrivcd5、2y;//p=&al;p->printl();p二&x;p~>printl();p二&y;p->printl();Thisisabaseclass.Thisisabaseclass.Thisisabaseclass.请按任意键继续•••非虚函数:三次均执行基类函数。虚函数:分别执行基类函数,继承类1函数。继承类2函数1.阅读下列程序,修改其中的错误,运行结果应如图9-2,对带注释标记的语句进行功能注释。#include〈iostreani>usingnamespacestd;classbase{intn;public:base(){n=0;};b6、ase(inti){n二i;};baseoperator+(basec)//运算符重载{basetemp;temp.n=n+c.n;//执彳亍+操作returntemp;}voiddisp(){cout«,zn=,,«n«endl;}};voidmain(){basecl(5),c2(10),c3;c3二cl+c2;//c3的值为cl,c2和cl.disp();c2.dispO;c3.dispO;图9・2第3题的输出4•阅读F列程序,然后将构造函数date(inta,intb,intc){m=a;d=b;y=c;}换成date(intm,intd7、,inty){this->m=m;this->d=d;this->y=y;},并对运行结果进行说明#includeusingnamespacestd;staticintdys□二{31,2&31,30,31,30,31,31,30,31,30,31};classdate{intm,d,y;public:date(intm,intd,inty){this->m=m;this-〉d二d;this->y二y;}date(){}voiddisp(){cout<8、ator+(intday){datedt二*this;day+=dt.d;while(day>dys[dt.mT]){day-=dys[
3、);cout<<,z第一个字符串的长度为:"《obj.getlenO<4、eam>usingnamespacestd;classbase{public:voidprintl()//{cout〈〈〃Thisisabaseclass.〃;}};classderivedl:publicbase{voidprintl()//{cout<<,zThcfirstderivation.,z;}};classderived2:publicbase{voidprintl()//{cout〈〈〃Thcsecondderivation.〃;}};voidmain(){baseal,*p;//derivedlx;//dcrivcd5、2y;//p=&al;p->printl();p二&x;p~>printl();p二&y;p->printl();Thisisabaseclass.Thisisabaseclass.Thisisabaseclass.请按任意键继续•••非虚函数:三次均执行基类函数。虚函数:分别执行基类函数,继承类1函数。继承类2函数1.阅读下列程序,修改其中的错误,运行结果应如图9-2,对带注释标记的语句进行功能注释。#include〈iostreani>usingnamespacestd;classbase{intn;public:base(){n=0;};b6、ase(inti){n二i;};baseoperator+(basec)//运算符重载{basetemp;temp.n=n+c.n;//执彳亍+操作returntemp;}voiddisp(){cout«,zn=,,«n«endl;}};voidmain(){basecl(5),c2(10),c3;c3二cl+c2;//c3的值为cl,c2和cl.disp();c2.dispO;c3.dispO;图9・2第3题的输出4•阅读F列程序,然后将构造函数date(inta,intb,intc){m=a;d=b;y=c;}换成date(intm,intd7、,inty){this->m=m;this->d=d;this->y=y;},并对运行结果进行说明#includeusingnamespacestd;staticintdys□二{31,2&31,30,31,30,31,31,30,31,30,31};classdate{intm,d,y;public:date(intm,intd,inty){this->m=m;this-〉d二d;this->y二y;}date(){}voiddisp(){cout<8、ator+(intday){datedt二*this;day+=dt.d;while(day>dys[dt.mT]){day-=dys[
4、eam>usingnamespacestd;classbase{public:voidprintl()//{cout〈〈〃Thisisabaseclass.〃;}};classderivedl:publicbase{voidprintl()//{cout<<,zThcfirstderivation.,z;}};classderived2:publicbase{voidprintl()//{cout〈〈〃Thcsecondderivation.〃;}};voidmain(){baseal,*p;//derivedlx;//dcrivcd
5、2y;//p=&al;p->printl();p二&x;p~>printl();p二&y;p->printl();Thisisabaseclass.Thisisabaseclass.Thisisabaseclass.请按任意键继续•••非虚函数:三次均执行基类函数。虚函数:分别执行基类函数,继承类1函数。继承类2函数1.阅读下列程序,修改其中的错误,运行结果应如图9-2,对带注释标记的语句进行功能注释。#include〈iostreani>usingnamespacestd;classbase{intn;public:base(){n=0;};b
6、ase(inti){n二i;};baseoperator+(basec)//运算符重载{basetemp;temp.n=n+c.n;//执彳亍+操作returntemp;}voiddisp(){cout«,zn=,,«n«endl;}};voidmain(){basecl(5),c2(10),c3;c3二cl+c2;//c3的值为cl,c2和cl.disp();c2.dispO;c3.dispO;图9・2第3题的输出4•阅读F列程序,然后将构造函数date(inta,intb,intc){m=a;d=b;y=c;}换成date(intm,intd
7、,inty){this->m=m;this->d=d;this->y=y;},并对运行结果进行说明#includeusingnamespacestd;staticintdys□二{31,2&31,30,31,30,31,31,30,31,30,31};classdate{intm,d,y;public:date(intm,intd,inty){this->m=m;this-〉d二d;this->y二y;}date(){}voiddisp(){cout<8、ator+(intday){datedt二*this;day+=dt.d;while(day>dys[dt.mT]){day-=dys[
8、ator+(intday){datedt二*this;day+=dt.d;while(day>dys[dt.mT]){day-=dys[
此文档下载收益归作者所有