面向对象程序设计远程教育习题及答案3.docx
- 文档编号:26085945
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:16
- 大小:18.33KB
面向对象程序设计远程教育习题及答案3.docx
《面向对象程序设计远程教育习题及答案3.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计远程教育习题及答案3.docx(16页珍藏版)》请在冰豆网上搜索。
面向对象程序设计远程教育习题及答案3
5.#include
voidmain()
{inti(3),j(8);
int*constp=&i;
cout<<*p< p=&j; cout<<*p< } 答案: int*constp=&i;在指针变量前加const表示一个常指针即地址不能变化,它指向的变 量不能改变且定义时必须设置指向变量或对象的地址。 [修改]int*p=&i; 2.#include classT {protected: intp; public: T(intm){p=m;} }; voidmain() {Ta(10); cout< } 答案: [修改]public [解析]protected保护类型的成员,不能在类外访问。 3.#include usingnamespacestd; classDate; classTime {public: Time(inth,intm,ints) {hour=h,minute=m,sec=s;} voidshow(Date&d); private: inthour,minute,sec;}; classDate {public: Date(intm,intd,inty) {month=m,day=d,year=y;} voidTime: : show(Date&); private: intmonth,day,year;}; voidTime: : show(Date&d) {cout< cout< "< "< voidmain() {Timet1(9,23,50); Dated1(12,20,2008); t1.show(d1); 答案: voidTime: : show(Date&);成员函数作为友元函数,要加friend。 [修改]friendvoidTime: : show(Date&); 4.输出最小值,有一处错误。 #include classTest {inta,b; intgetmin() {return(a a: b);} public: intc; voidsetValue(intx1,intx2,intx3) {a=x1;b=x2;c=x3;} intGetMin(); }; intTest: : GetMin() {intd=getmin(); return(d=d d: c); } voidmain() {Testt1; t1.setValue(34,6,2); cout< } 答案: cout< [修改]cout< 5.实现数值、字符串的交换。 #include #include usingnamespacestd; template voidSwap(T&a,T&b) {Ttemp; temp=a,a=b,b=temp; } voidmain() {inta=5,b=9; chars1[]="Hello",s2[]="hi"; Swap(a,b); Swap(s1,s2); cout<<"a="< cout<<"s1="< } 答案: chars1[]="Hello",s2[]="hi";使用Swap(s1,s2)调用交换的是地址。 字符指针作实 参,形参值发生改变,实参也就发生变化。 [修改]char*s1="Hello",*s2="hi"; 1.#include classA {private: intx; public: A(inti){x=i;} A(){x=0;} friendintmin(A&,A&);}; intmin(A&a,A&b) {return(a.x>b.x)? a.x: b.x;} voidmain() {Aa(3),b(5); cout< } 答案: cout< 。 min就是一个普通的友元函数。 [修改]cout< 2.#include classshape {public: virtualintarea(){return0;} }; classrectangle: publicshape {public: inta,b; voidsetLength(intx,inty){a=x;b=y;} intarea(){returna*b;}}; voidmain() {rectangler; r.setLength(3,5); shapes1,*s2=&r; cout< s2=s1; cout< } 答案: shapes1,*s2=r;指针使用错误。 s是指针使用它指向对象的成员有两种方法,有下面两行 可知,使用的是引用。 [修改]改为shape&s=r; 3.下面的类定义中有一处错误,请用下横线标出错误所在行并给出修改意见。 #include template classA {private: Tx,y,s; public: A(Ta,Tb) {x=a,y=b;s=x+y;} voidshow() {cout<<"x+y="< voidmain() {A add.show(); } 答案: [修改]A [解析]Aadd(10,100);类模板的使用,参数实例化后生成模板类。 用类模板定义对象时要指定 参数类型。 4.生成具有n个元素的动态数组。 #include voidmain() {intn; cin>>n; inta[n]; a[0]=2;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 远程教育 习题 答案