习题.docx
- 文档编号:7960336
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:16
- 大小:46.01KB
习题.docx
《习题.docx》由会员分享,可在线阅读,更多相关《习题.docx(16页珍藏版)》请在冰豆网上搜索。
习题
类和对象
1.下述程序编译有错,修改后使其能够通过编译(P84)
#include
classStedent
{charname[10];
intage;
floataver;
voidprintStu();
};
voidmain()
{Sudentp1,p2,p3;
p1.age=30;
}
2.修改下述程序,使其运行结果为:
(P84)
StudentNo.is:
20021,ageis:
20.
#include
classStudent
{intano;
intage;
floataver;
voidprintStu();
voidsetSno(intd);
voidsetAge(inta)
};
voidprintStu()
{
cout<<”\nStudentNo.is“< cout<<”ageis“< } voidsetSno(ints) {sno=s; } voidsetAge(inta) {age=a; } voidmain() {Studentlin; lin.setSno(20021); lin.setAge(20); lin.printStu(); } 正确的: #include classStudent {intsno; intage; floataver; public: voidprintStu(); voidsetSno(intd); voidsetAge(inta); }; voidStudent: : printStu() {cout<<"\nStudentNo.is: "< cout<<"ageis: "< } voidStudent: : setSno(ints) {sno=s; } voidStudent: : setAge(inta) {age=a; } voidmain() {Studentlin; lin.setSno(20021); lin.setAge(20); lin.printStu(); } 运行结果为: StudentNo.is: 20021,ageis: 20. 3.下述程序编译有错,修改后使其能够通过编译(P84) #include classPoint {public: intx,y; Point(){x=1;y=2;} }; voidmain() {Pointcpoint,aaa; cpoint.x=2; } 4.下述程序编译有错,修改后使其能够通过编译(P85) #include classStack {public: Stack(intsz); public: char*p; intsize; }; Stack: : Stack(intsz) {p=newchar[size=sz]; } voidmain() { Stackstt; } 5.下述程序编译有错,修改后使其运行结果为: (P134) 0Studentexist pleaseinputstudentNo.33 pleaseinputstudentNo.88 2Studentexist,y=33 2Studentexist,y=88 #include #include classStudent {private: staticintx; intSno; public: Student(); {++x; cout<<”\npleaseinputstudentNo.”; cin>>Sno; } staticintget_x() {returnx;} intget_Sno() {returnSno;} }; intStudent: : x=0; voidmain() {cout< : get_x()<<”Studentexist\n”; Studentstu1; Student*pstu=newStudent; cout< : get_x()<<”Studentexist,y=”< cout< : get_x()<<”Studentexist,y=”< } #include #include classStudent {private: staticintx; intSno; public: Student() {++x; cout<<"\npleaseinputstudentNo."; cin>>Sno; } staticintget_x() {returnx; } intget_Sno() {returnSno; } }; intStudent: : x=0; voidmain() {cout< : get_x()<<"Studentexist\n"; Studentstu1; Student*pstu=newStudent; cout< : get_x()<<"Studentexist,y="< cout< : get_x()<<"Studentexist,y="<<(*pstu).get_Sno()<<"\n"; } 6.写出下述程序的运行结果(P137) #include classexample {private: inti; public: example(intn) {i=n; cout<<"Constructing\n"; } ~example() {cout<<"Destructing\n"; } intget_i() {returni;} }; intsqr_it(exampleo) {cout<<"sqr_it"< returno.get_i()*o.get_i(); } main() {examplex(10); cout< cout< return0; } 运行结果为: Constructing 10 sqr_it Destructing 100 Destructing 继承与派生类 7.不使用虚基类时: 写出下述程序的运行结果(P167) #include classbase {protected: inta; public: base() {a=5;cout<<"basea="< }; classbase1: publicbase {public: base1() {a=a+10;cout<<"base1a="< }; classbase2: publicbase {public: base2() {a=a+20;cout<<"base2a="< }; classderived: publicbase1,publicbase2 {public: derived() {cout<<"base1: : a="< : a< cout<<"base2: : a="< : a< } }; main() {derivedobj; return0; } 运行结果为: 8.虚基类的使用: 写出下述程序的运行结果(P169) #include classbase {protected: inta; public: base() {a=5;cout<<"basea="< }; classbase1: virtualpublicbase {public: base1() {a=a+10;cout<<"base1a="< }; classbase2: virtualpublicbase {public: base2() {a=a+20;cout<<"base2a="< }; classderived: publicbase1,publicbase2 {public: derived()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题